#include "game_base_msg.h"
#include "jmsg.h"
static const unsigned char s_protoString []= {
   0x0a,0x42,0x61,0x73,0x65,0x4d,0x73,0x67,0x43,0x32,
   0x53,0x52,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x20,
   0x3d,0x20,0x31,0x20,0x7b,0x20,0x3b,0xe6,0xb3,0xa8,
   0xe5,0x86,0x8c,0x0a,0x09,0x75,0x73,0x65,0x72,0x4e,
   0x61,0x6d,0x65,0x20,0x3a,0x20,0x73,0x74,0x72,0x69,
   0x6e,0x67,0x20,0x3d,0x20,0x31,0x3b,0x20,0xe7,0x94,
   0xa8,0xe6,0x88,0xb7,0xe5,0x90,0x8d,0x0a,0x09,0x70,
   0x61,0x73,0x73,0x77,0x6f,0x72,0x64,0x53,0x68,0x61,
   0x31,0x20,0x3a,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,
   0x20,0x3d,0x20,0x32,0x3b,0x20,0xe5,0xaf,0x86,0xe7,
   0xa0,0x81,0x0a,0x7d,0x0a,0x0a,0x42,0x61,0x73,0x65,
   0x4d,0x73,0x67,0x53,0x32,0x43,0x52,0x65,0x67,0x69,
   0x73,0x74,0x65,0x72,0x20,0x3d,0x20,0x32,0x20,0x7b,
   0x3b,0xe6,0xb3,0xa8,0xe5,0x86,0x8c,0xe7,0xbb,0x93,
   0xe6,0x9e,0x9c,0x0a,0x09,0x75,0x73,0x65,0x72,0x4e,
   0x61,0x6d,0x65,0x20,0x3a,0x20,0x73,0x74,0x72,0x69,
   0x6e,0x67,0x20,0x3d,0x20,0x31,0x0a,0x09,0x69,0x73,
   0x53,0x75,0x63,0x63,0x65,0x73,0x73,0x20,0x3a,0x20,
   0x62,0x6f,0x6f,0x6c,0x20,0x3d,0x20,0x32,0x20,0x3b,
   0xe6,0xb3,0xa8,0xe5,0x86,0x8c,0xe7,0xbb,0x93,0xe6,
   0x9e,0x9c,0x0a,0x09,0x65,0x72,0x72,0x6f,0x72,0x43,
   0x6f,0x64,0x65,0x20,0x3a,0x20,0x69,0x6e,0x74,0x20,
   0x3d,0x20,0x33,0x20,0x20,0x3b,0xe9,0x94,0x99,0xe8,
   0xaf,0xaf,0xe7,0xa0,0x81,0x20,0x20,0x0a,0x7d,0x0a,
   0x0a,0x42,0x61,0x73,0x65,0x4d,0x73,0x67,0x43,0x32,
   0x53,0x41,0x63,0x74,0x69,0x76,0x61,0x74,0x65,0x20,
   0x3d,0x20,0x33,0x20,0x7b,0x3b,0x20,0xe6,0xbf,0x80,
   0xe6,0xb4,0xbb,0x0a,0x09,0x67,0x75,0x65,0x73,0x74,
   0x55,0x73,0x65,0x72,0x4e,0x61,0x6d,0x65,0x20,0x3a,
   0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x3d,0x20,
   0x31,0x3b,0x20,0xe6,0xb8,0xb8,0xe5,0xae,0xa2,0xe8,
   0xb4,0xa6,0xe5,0x8f,0xb7,0xe7,0x94,0xa8,0xe6,0x88,
   0xb7,0xe5,0x90,0x8d,0x0a,0x09,0x75,0x73,0x65,0x72,
   0x4e,0x61,0x6d,0x65,0x20,0x3a,0x20,0x73,0x74,0x72,
   0x69,0x6e,0x67,0x20,0x3d,0x20,0x32,0x3b,0x20,0xe6,
   0xad,0xa3,0xe5,0xbc,0x8f,0xe8,0xb4,0xa6,0xe5,0x8f,
   0xb7,0xe7,0x94,0xa8,0xe6,0x88,0xb7,0xe5,0x90,0x8d,
   0x0a,0x09,0x70,0x61,0x73,0x73,0x77,0x6f,0x72,0x64,
   0x53,0x68,0x61,0x31,0x20,0x3a,0x20,0x73,0x74,0x72,
   0x69,0x6e,0x67,0x20,0x3d,0x20,0x33,0x3b,0x20,0xe6,
   0xad,0xa3,0xe5,0xbc,0x8f,0xe8,0xb4,0xa6,0xe5,0x8f,
   0xb7,0xe5,0xaf,0x86,0xe7,0xa0,0x81,0x0a,0x09,0x70,
   0x68,0x6f,0x6e,0x65,0x4e,0x6f,0x20,0x3a,0x20,0x73,
   0x74,0x72,0x69,0x6e,0x67,0x20,0x3d,0x20,0x34,0x3b,
   0xe7,0x94,0xb5,0xe8,0xaf,0x9d,0xe5,0x8f,0xb7,0xe7,
   0xa0,0x81,0x0a,0x7d,0x0a,0x0a,0x42,0x61,0x73,0x65,
   0x4d,0x73,0x67,0x53,0x32,0x43,0x41,0x63,0x74,0x69,
   0x76,0x61,0x74,0x65,0x20,0x3d,0x20,0x34,0x20,0x7b,
   0x3b,0x20,0xe6,0xbf,0x80,0xe6,0xb4,0xbb,0xe7,0xbb,
   0x93,0xe6,0x9e,0x9c,0x0a,0x09,0x69,0x73,0x53,0x75,
   0x63,0x63,0x65,0x73,0x73,0x20,0x3a,0x20,0x62,0x6f,
   0x6f,0x6c,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x09,0x65,
   0x72,0x72,0x6f,0x72,0x43,0x6f,0x64,0x65,0x20,0x3a,
   0x20,0x69,0x6e,0x74,0x20,0x3d,0x20,0x32,0x3b,0x0a,
   0x09,0x6e,0x65,0x77,0x55,0x73,0x65,0x72,0x4e,0x61,
   0x6d,0x65,0x20,0x3a,0x20,0x73,0x74,0x72,0x69,0x6e,
   0x67,0x20,0x3d,0x20,0x33,0x0a,0x7d,0x0a,0x0a,0x42,
   0x61,0x73,0x65,0x4d,0x73,0x67,0x43,0x32,0x53,0x4c,
   0x6f,0x67,0x69,0x6e,0x20,0x3d,0x20,0x35,0x20,0x7b,
   0x3b,0xe5,0xae,0xa2,0xe6,0x88,0xb7,0xe7,0xab,0xaf,
   0xe7,0x99,0xbb,0xe9,0x99,0x86,0xe6,0xb6,0x88,0xe6,
   0x81,0xaf,0x0a,0x09,0x75,0x73,0x65,0x72,0x4e,0x61,
   0x6d,0x65,0x20,0x3a,0x20,0x73,0x74,0x72,0x69,0x6e,
   0x67,0x20,0x3d,0x20,0x31,0x3b,0xe7,0x94,0xa8,0xe6,
   0x88,0xb7,0xe5,0x90,0x8d,0x0a,0x09,0x70,0x61,0x73,
   0x73,0x77,0x6f,0x72,0x64,0x20,0x3a,0x20,0x73,0x74,
   0x72,0x69,0x6e,0x67,0x20,0x3d,0x20,0x32,0x3b,0xe5,
   0xaf,0x86,0xe7,0xa0,0x81,0xef,0xbc,0x8c,0xe5,0x8f,
   0xaf,0xe4,0xbc,0xa0,0x6d,0x64,0x35,0x0a,0x09,0x67,
   0x61,0x6d,0x65,0x4e,0x61,0x6d,0x65,0x20,0x3a,0x20,
   0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x3d,0x20,0x33,
   0x3b,0xe6,0xb8,0xb8,0xe6,0x88,0x8f,0xe5,0x90,0x8d,
   0x0a,0x09,0x69,0x73,0x47,0x75,0x65,0x73,0x74,0x20,
   0x3a,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x3d,0x20,0x34,
   0x3b,0xe6,0x98,0xaf,0xe5,0x90,0xa6,0xe6,0x98,0xaf,
   0xe6,0xb8,0xb8,0xe5,0xae,0xa2,0x0a,0x7d,0x0a,0x0a,
   0x42,0x61,0x73,0x65,0x4d,0x73,0x67,0x53,0x32,0x43,
   0x4c,0x6f,0x67,0x69,0x6e,0x20,0x3d,0x20,0x36,0x20,
   0x7b,0x20,0x20,0x3b,0xe7,0x99,0xbb,0xe9,0x99,0x86,
   0xe5,0x93,0x8d,0xe5,0xba,0x94,0x0a,0x09,0x73,0x75,
   0x63,0x63,0x65,0x73,0x73,0x20,0x3a,0x20,0x69,0x6e,
   0x74,0x20,0x3d,0x20,0x31,0x20,0x20,0x0a,0x09,0x65,
   0x72,0x72,0x6f,0x72,0x43,0x6f,0x64,0x65,0x20,0x3a,
   0x20,0x69,0x6e,0x74,0x20,0x3d,0x20,0x32,0x0a,0x09,
   0x75,0x73,0x65,0x72,0x4e,0x61,0x6d,0x65,0x20,0x3a,
   0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x3d,0x20,
   0x33,0x0a,0x09,0x70,0x6c,0x61,0x79,0x65,0x72,0x49,
   0x6e,0x66,0x6f,0x20,0x3a,0x20,0x42,0x61,0x73,0x65,
   0x4d,0x73,0x67,0x50,0x6c,0x61,0x79,0x65,0x72,0x49,
   0x6e,0x66,0x6f,0x20,0x3d,0x20,0x34,0x20,0x20,0x3b,
   0xe8,0x8b,0xa5,0xe7,0x99,0xbb,0xe9,0x99,0x86,0xe6,
   0x88,0x90,0xe5,0x8a,0x9f,0xef,0xbc,0x8c,0xe8,0xaf,
   0xa5,0xe5,0xad,0x97,0xe6,0xae,0xb5,0xe4,0xb8,0xba,
   0xe7,0x94,0xa8,0xe6,0x88,0xb7,0xe4,0xbf,0xa1,0xe6,
   0x81,0xaf,0xef,0xbc,0x8c,0xe5,0x90,0xa6,0xe5,0x88,
   0x99,0xe5,0xbf,0xbd,0xe7,0x95,0xa5,0xe6,0x94,0xb9,
   0xe5,0xad,0x97,0xe6,0xae,0xb5,0x0a,0x09,0x70,0x6c,
   0x61,0x79,0x65,0x72,0x47,0x61,0x6d,0x65,0x44,0x61,
   0x74,0x61,0x20,0x3a,0x20,0x73,0x74,0x72,0x69,0x6e,
   0x67,0x20,0x3d,0x20,0x35,0x20,0x3b,0xe7,0x8e,0xa9,
   0xe5,0xae,0xb6,0xe6,0xb8,0xb8,0xe6,0x88,0x8f,0xe6,
   0x95,0xb0,0xe6,0x8d,0xae,0x0a,0x09,0x72,0x6f,0x6f,
   0x6d,0x73,0x20,0x3a,0x20,0x5b,0x5d,0x42,0x61,0x73,
   0x65,0x50,0x72,0x6f,0x74,0x6f,0x52,0x6f,0x6f,0x6d,
   0x53,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x36,0x3b,
   0x20,0xe6,0x88,0xbf,0xe9,0x97,0xb4,0xe7,0x8a,0xb6,
   0xe6,0x80,0x81,0xe5,0x88,0x97,0xe8,0xa1,0xa8,0x0a,
   0x7d,0x0a,0x0a,0x42,0x61,0x73,0x65,0x4d,0x73,0x67,
   0x43,0x32,0x53,0x4a,0x6f,0x69,0x6e,0x52,0x6f,0x6f,
   0x6d,0x20,0x3d,0x20,0x37,0x20,0x7b,0x3b,0xe5,0x8a,
   0xa0,0xe5,0x85,0xa5,0xe6,0x88,0xbf,0xe9,0x97,0xb4,
   0xe8,0xaf,0xb7,0xe6,0xb1,0x82,0x0a,0x09,0x72,0x6f,
   0x6f,0x6d,0x49,0x64,0x20,0x3a,0x20,0x69,0x6e,0x74,
   0x20,0x3d,0x31,0x0a,0x7d,0x0a,0x0a,0x42,0x61,0x73,
   0x65,0x4d,0x73,0x67,0x53,0x32,0x43,0x4a,0x6f,0x69,
   0x6e,0x52,0x6f,0x6f,0x6d,0x20,0x3d,0x20,0x38,0x20,
   0x7b,0x3b,0xe5,0x8a,0xa0,0xe5,0x85,0xa5,0xe6,0x88,
   0xbf,0xe9,0x97,0xb4,0xe5,0x93,0x8d,0xe5,0xba,0x94,
   0x0a,0x09,0x69,0x73,0x53,0x75,0x63,0x63,0x65,0x73,
   0x73,0x20,0x3a,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x3d,
   0x20,0x31,0x3b,0x0a,0x09,0x65,0x72,0x72,0x6f,0x72,
   0x43,0x6f,0x64,0x65,0x20,0x3a,0x20,0x69,0x6e,0x74,
   0x20,0x3d,0x20,0x32,0x3b,0x0a,0x09,0x72,0x6f,0x6f,
   0x6d,0x49,0x64,0x20,0x3a,0x20,0x69,0x6e,0x74,0x20,
   0x3d,0x20,0x33,0x3b,0x0a,0x09,0x64,0x65,0x73,0x6b,
   0x73,0x20,0x3a,0x20,0x5b,0x5d,0x42,0x61,0x73,0x65,
   0x50,0x72,0x6f,0x74,0x6f,0x44,0x65,0x73,0x6b,0x49,
   0x6e,0x66,0x6f,0x20,0x3d,0x20,0x34,0x3b,0xe6,0xa1,
   0x8c,0xe5,0xad,0x90,0xe5,0x88,0x97,0xe8,0xa1,0xa8,
   0x0a,0x09,0x61,0x6c,0x6c,0x44,0x65,0x73,0x6b,0x43,
   0x6f,0x75,0x6e,0x74,0x20,0x3a,0x20,0x69,0x6e,0x74,
   0x20,0x3d,0x20,0x35,0x3b,0xe6,0xa1,0x8c,0xe5,0xad,
   0x90,0xe6,0x95,0xb0,0xe9,0x87,0x8f,0x0a,0x09,0x70,
   0x6c,0x61,0x79,0x65,0x72,0x73,0x20,0x3a,0x20,0x5b,
   0x5d,0x42,0x61,0x73,0x65,0x4d,0x73,0x67,0x50,0x6c,
   0x61,0x79,0x65,0x72,0x49,0x6e,0x66,0x6f,0x20,0x3d,
   0x20,0x36,0x3b,0xe6,0x88,0xbf,0xe9,0x97,0xb4,0xe5,
   0x86,0x85,0xe7,0x8e,0xa9,0xe5,0xae,0xb6,0xe5,0x88,
   0x97,0xe8,0xa1,0xa8,0x28,0xe4,0xb8,0x8d,0xe5,0x8c,
   0x85,0xe5,0x90,0xab,0xe6,0xb8,0xb8,0xe6,0x88,0x8f,
   0xe6,0x95,0xb0,0xe6,0x8d,0xae,0x29,0x0a,0x09,0x72,
   0x6f,0x6f,0x6d,0x53,0x74,0x61,0x74,0x65,0x20,0x3a,
   0x20,0x42,0x61,0x73,0x65,0x50,0x72,0x6f,0x74,0x6f,
   0x52,0x6f,0x6f,0x6d,0x53,0x74,0x61,0x74,0x65,0x20,
   0x3d,0x20,0x37,0x3b,0xe6,0x88,0xbf,0xe9,0x97,0xb4,
   0xe7,0x8a,0xb6,0xe6,0x80,0x81,0x0a,0x7d,0x0a,0x0a,
   0x0a,0x42,0x61,0x73,0x65,0x4d,0x73,0x67,0x43,0x32,
   0x53,0x4a,0x6f,0x69,0x6e,0x44,0x65,0x73,0x6b,0x20,
   0x3d,0x20,0x39,0x20,0x7b,0x0a,0x09,0x64,0x65,0x73,
   0x6b,0x49,0x64,0x20,0x3a,0x20,0x69,0x6e,0x74,0x20,
   0x20,0x3d,0x20,0x31,0x20,0x20,0x3b,0xe8,0xaf,0xb7,
   0xe6,0xb1,0x82,0xe5,0x8a,0xa0,0xe5,0x85,0xa5,0xe6,
   0xa1,0x8c,0xe5,0xad,0x90,0xe7,0x9a,0x84,0xe6,0xa1,
   0x8c,0xe5,0xad,0x90,0xe5,0x8f,0xb7,0xef,0xbc,0x8c,
   0xe8,0x8b,0xa5,0xe6,0x98,0xaf,0xe8,0x87,0xaa,0xe5,
   0x8a,0xa8,0xe5,0x88,0x86,0xe9,0x85,0x8d,0xef,0xbc,
   0x8c,0xe8,0xaf,0xa5,0xe5,0x80,0xbc,0xe5,0xa1,0xab,
   0x2d,0x31,0x0a,0x09,0x63,0x68,0x61,0x69,0x72,0x49,
   0x64,0x20,0x3a,0x20,0x69,0x6e,0x74,0x20,0x3d,0x20,
   0x32,0x20,0x3b,0xe6,0xa4,0x85,0xe5,0xad,0x90,0x69,
   0x64,0x0a,0x7d,0x0a,0x0a,0x42,0x61,0x73,0x65,0x4d,
   0x73,0x67,0x53,0x32,0x43,0x4a,0x6f,0x69,0x6e,0x44,
   0x65,0x73,0x6b,0x20,0x3d,0x20,0x31,0x30,0x20,0x7b,
   0x20,0x20,0x20,0x3b,0xe5,0x8a,0xa0,0xe5,0x85,0xa5,
   0xe6,0xa1,0x8c,0xe5,0xad,0x90,0xe7,0x9a,0x84,0xe5,
   0x93,0x8d,0xe5,0xba,0x94,0x0a,0x09,0x73,0x75,0x63,
   0x63,0x65,0x73,0x73,0x20,0x3a,0x20,0x62,0x6f,0x6f,
   0x6c,0x20,0x3d,0x20,0x31,0x0a,0x09,0x63,0x68,0x61,
   0x69,0x72,0x49,0x64,0x20,0x3a,0x20,0x69,0x6e,0x74,
   0x20,0x3d,0x20,0x32,0x20,0x20,0x20,0x20,0x3b,0xe8,
   0x8b,0xa5,0xe6,0x88,0x90,0xe5,0x8a,0x9f,0xef,0xbc,
   0x8c,0xe4,0xb8,0xba,0xe5,0x8a,0xa0,0xe5,0x85,0xa5,
   0xe6,0xa1,0x8c,0xe5,0xad,0x90,0xe7,0x9a,0x84,0xe6,
   0xa4,0x85,0xe5,0xad,0x90,0xe5,0x8f,0xb7,0xef,0xbc,
   0x8c,0xe5,0xa4,0xb1,0xe8,0xb4,0xa5,0xe8,0xaf,0xb7,
   0xe5,0xbf,0xbd,0xe7,0x95,0xa5,0x0a,0x09,0x64,0x65,
   0x73,0x6b,0x49,0x6e,0x66,0x6f,0x20,0x3a,0x20,0x42,
   0x61,0x73,0x65,0x50,0x72,0x6f,0x74,0x6f,0x44,0x65,
   0x73,0x6b,0x49,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x33,
   0x20,0x3b,0xe6,0xa1,0x8c,0xe5,0xad,0x90,0xe4,0xbf,
   0xa1,0xe6,0x81,0xaf,0x0a,0x7d,0x0a,0x0a,0x42,0x61,
   0x73,0x65,0x4d,0x73,0x67,0x43,0x32,0x53,0x4c,0x65,
   0x61,0x76,0x65,0x44,0x65,0x73,0x6b,0x20,0x3d,0x20,
   0x31,0x31,0x20,0x7b,0x20,0x3b,0xe7,0xa6,0xbb,0xe5,
   0xbc,0x80,0xe6,0xa1,0x8c,0xe5,0xad,0x90,0x0a,0x7d,
   0x0a,0x0a,0x42,0x61,0x73,0x65,0x4d,0x73,0x67,0x53,
   0x32,0x43,0x4f,0x74,0x68,0x65,0x72,0x50,0x6c,0x61,
   0x79,0x65,0x72,0x4a,0x6f,0x69,0x6e,0x52,0x6f,0x6f,
   0x6d,0x20,0x3d,0x20,0x31,0x32,0x20,0x7b,0x20,0x3b,
   0x20,0xe5,0x85,0xb6,0xe4,0xbb,0x96,0xe7,0x8e,0xa9,
   0xe5,0xae,0xb6,0xe5,0x8a,0xa0,0xe5,0x85,0xa5,0xe6,
   0x88,0xbf,0xe9,0x97,0xb4,0xe6,0xb6,0x88,0xe6,0x81,
   0xaf,0x0a,0x09,0x70,0x6c,0x61,0x79,0x65,0x72,0x49,
   0x6e,0x66,0x6f,0x20,0x3a,0x20,0x42,0x61,0x73,0x65,
   0x4d,0x73,0x67,0x50,0x6c,0x61,0x79,0x65,0x72,0x49,
   0x6e,0x66,0x6f,0x20,0x3d,0x20,0x31,0x3b,0xe5,0x8a,
   0xa0,0xe5,0x85,0xa5,0xe7,0x9a,0x84,0xe7,0x8e,0xa9,
   0xe5,0xae,0xb6,0xe4,0xbf,0xa1,0xe6,0x81,0xaf,0x0a,
   0x7d,0x0a,0x0a,0x42,0x61,0x73,0x65,0x4d,0x73,0x67,
   0x53,0x32,0x43,0x4f,0x74,0x68,0x65,0x72,0x50,0x6c,
   0x61,0x79,0x65,0x72,0x4c,0x65,0x61,0x76,0x65,0x52,
   0x6f,0x6f,0x6d,0x20,0x3d,0x20,0x31,0x33,0x20,0x7b,
   0x20,0x3b,0x20,0xe5,0x85,0xb6,0xe4,0xbb,0x96,0xe7,
   0x8e,0xa9,0xe5,0xae,0xb6,0xe7,0xa6,0xbb,0xe5,0xbc,
   0x80,0xe6,0x88,0xbf,0xe9,0x97,0xb4,0xe6,0xb6,0x88,
   0xe6,0x81,0xaf,0x0a,0x09,0x75,0x73,0x65,0x72,0x4e,
   0x61,0x6d,0x65,0x20,0x3a,0x20,0x73,0x74,0x72,0x69,
   0x6e,0x67,0x20,0x3d,0x20,0x31,0x20,0x3b,0xe5,0x8a,
   0xa0,0xe5,0x85,0xa5,0xe7,0x9a,0x84,0xe7,0x8e,0xa9,
   0xe5,0xae,0xb6,0xe4,0xbf,0xa1,0xe6,0x81,0xaf,0x0a,
   0x7d,0x0a,0x0a,0x42,0x61,0x73,0x65,0x4d,0x73,0x67,
   0x52,0x6f,0x6f,0x6d,0x53,0x32,0x43,0x4f,0x74,0x68,
   0x65,0x72,0x50,0x6c,0x61,0x79,0x65,0x72,0x4a,0x6f,
   0x69,0x6e,0x44,0x65,0x73,0x6b,0x20,0x3d,0x20,0x31,
   0x34,0x20,0x7b,0x09,0x3b,0xe5,0x85,0xb6,0xe4,0xbb,
   0x96,0xe7,0x8e,0xa9,0xe5,0xae,0xb6,0xe5,0x8a,0xa0,
   0xe5,0x85,0xa5,0xe6,0xa1,0x8c,0xe5,0xad,0x90,0xe7,
   0x9a,0x84,0xe6,0x88,0xbf,0xe9,0x97,0xb4,0xe9,0x80,
   0x9a,0xe7,0x9f,0xa5,0x2c,0xe5,0x8f,0xaa,0xe6,0x9c,
   0x89,0xe8,0x87,0xaa,0xe7,0x94,0xb1,0xe8,0x90,0xbd,
   0xe5,0xba,0xa7,0xe6,0xa8,0xa1,0xe5,0xbc,0x8f,0xe6,
   0x89,0x8d,0xe4,0xbc,0x9a,0xe5,0xb9,0xbf,0xe6,0x92,
   0xad,0xe8,0xbf,0x99,0xe4,0xb8,0xaa,0xe9,0x80,0x9a,
   0xe7,0x9f,0xa5,0x0a,0x09,0x64,0x65,0x73,0x6b,0x49,
   0x64,0x20,0x3a,0x20,0x69,0x6e,0x74,0x20,0x3d,0x20,
   0x31,0x20,0x20,0x20,0x20,0x3b,0xe6,0xa1,0x8c,0xe5,
   0xad,0x90,0x69,0x64,0x0a,0x09,0x63,0x68,0x61,0x69,
   0x72,0x49,0x64,0x20,0x3a,0x20,0x69,0x6e,0x74,0x20,
   0x3d,0x20,0x32,0x20,0x20,0x20,0x3b,0xe6,0xa4,0x85,
   0xe5,0xad,0x90,0x69,0x64,0x0a,0x09,0x75,0x73,0x65,
   0x72,0x4e,0x61,0x6d,0x65,0x20,0x3a,0x20,0x73,0x74,
   0x72,0x69,0x6e,0x67,0x20,0x3d,0x20,0x33,0x20,0x3b,
   0xe7,0x8e,0xa9,0xe5,0xae,0xb6,0x69,0x64,0x0a,0x7d,
   0x0a,0x0a,0x42,0x61,0x73,0x65,0x4d,0x73,0x67,0x52,
   0x6f,0x6f,0x6d,0x53,0x32,0x43,0x4f,0x74,0x68,0x65,
   0x72,0x50,0x6c,0x61,0x79,0x65,0x72,0x4c,0x65,0x61,
   0x76,0x65,0x44,0x65,0x73,0x6b,0x20,0x3d,0x20,0x31,
   0x35,0x20,0x7b,0x20,0x3b,0xe5,0x85,0xb6,0xe4,0xbb,
   0x96,0xe7,0x8e,0xa9,0xe5,0xae,0xb6,0xe7,0xa6,0xbb,
   0xe5,0xbc,0x80,0xe6,0xa1,0x8c,0xe5,0xad,0x90,0xe7,
   0x9a,0x84,0xe6,0x88,0xbf,0xe9,0x97,0xb4,0xe9,0x80,
   0x9a,0xe7,0x9f,0xa5,0xef,0xbc,0x8c,0xe5,0x8f,0xaa,
   0xe6,0x9c,0x89,0xe8,0x87,0xaa,0xe7,0x94,0xb1,0xe8,
   0x90,0xbd,0xe5,0xba,0xa7,0xe6,0xa8,0xa1,0xe5,0xbc,
   0x8f,0xe6,0x89,0x8d,0xe4,0xbc,0x9a,0xe5,0xb9,0xbf,
   0xe6,0x92,0xad,0xe8,0xbf,0x99,0xe4,0xb8,0xaa,0xe9,
   0x80,0x9a,0xe7,0x9f,0xa5,0x0a,0x09,0x64,0x65,0x73,
   0x6b,0x49,0x64,0x20,0x3a,0x20,0x69,0x6e,0x74,0x20,
   0x3d,0x20,0x31,0x20,0x20,0x3b,0xe6,0xa1,0x8c,0xe5,
   0xad,0x90,0x69,0x64,0x0a,0x09,0x63,0x68,0x61,0x69,
   0x72,0x49,0x64,0x20,0x3a,0x20,0x69,0x6e,0x74,0x20,
   0x3d,0x20,0x32,0x20,0x3b,0xe6,0xa4,0x85,0xe5,0xad,
   0x90,0x69,0x64,0x0a,0x09,0x75,0x73,0x65,0x72,0x4e,
   0x61,0x6d,0x65,0x20,0x3a,0x20,0x73,0x74,0x72,0x69,
   0x6e,0x67,0x20,0x3d,0x20,0x33,0x20,0x3b,0xe7,0x8e,
   0xa9,0xe5,0xae,0xb6,0xe5,0x90,0x8d,0xe5,0xad,0x97,
   0x0a,0x7d,0x0a,0x0a,0x42,0x61,0x73,0x65,0x4d,0x73,
   0x67,0x44,0x65,0x73,0x6b,0x53,0x32,0x43,0x4f,0x74,
   0x68,0x65,0x72,0x50,0x6c,0x61,0x79,0x65,0x72,0x4a,
   0x6f,0x69,0x6e,0x44,0x65,0x73,0x6b,0x20,0x3d,0x20,
   0x31,0x36,0x20,0x7b,0x20,0x20,0x3b,0xe5,0x85,0xb6,
   0xe4,0xbb,0x96,0xe7,0x8e,0xa9,0xe5,0xae,0xb6,0xe5,
   0x8a,0xa0,0xe5,0x85,0xa5,0xe6,0xa1,0x8c,0xe5,0xad,
   0x90,0xe7,0x9a,0x84,0xe9,0x80,0x9a,0xe7,0x9f,0xa5,
   0x0a,0x09,0x70,0x6c,0x61,0x79,0x65,0x72,0x49,0x6e,
   0x66,0x6f,0x20,0x3a,0x20,0x42,0x61,0x73,0x65,0x4d,
   0x73,0x67,0x50,0x6c,0x61,0x79,0x65,0x72,0x49,0x6e,
   0x66,0x6f,0x20,0x3d,0x20,0x31,0x0a,0x09,0x64,0x65,
   0x73,0x6b,0x49,0x64,0x20,0x3a,0x20,0x69,0x6e,0x74,
   0x20,0x3d,0x20,0x32,0x0a,0x09,0x63,0x68,0x61,0x69,
   0x72,0x49,0x64,0x20,0x3a,0x20,0x69,0x6e,0x74,0x20,
   0x3d,0x20,0x33,0x0a,0x7d,0x0a,0x0a,0x42,0x61,0x73,
   0x65,0x4d,0x73,0x67,0x44,0x65,0x73,0x6b,0x53,0x32,
   0x43,0x4f,0x74,0x68,0x65,0x72,0x50,0x6c,0x61,0x79,
   0x65,0x72,0x4c,0x65,0x61,0x76,0x65,0x44,0x65,0x73,
   0x6b,0x20,0x3d,0x20,0x31,0x37,0x20,0x7b,0x20,0x3b,
   0xe5,0x85,0xb6,0xe4,0xbb,0x96,0xe7,0x8e,0xa9,0xe5,
   0xae,0xb6,0xe7,0xa6,0xbb,0xe5,0xbc,0x80,0xe6,0xa1,
   0x8c,0xe5,0xad,0x90,0xe7,0x9a,0x84,0xe9,0x80,0x9a,
   0xe7,0x9f,0xa5,0x20,0x0a,0x09,0x75,0x73,0x65,0x72,
   0x4e,0x61,0x6d,0x65,0x20,0x3a,0x20,0x73,0x74,0x72,
   0x69,0x6e,0x67,0x20,0x3d,0x20,0x31,0x0a,0x09,0x64,
   0x65,0x73,0x6b,0x49,0x64,0x20,0x3a,0x20,0x69,0x6e,
   0x74,0x20,0x3d,0x20,0x32,0x0a,0x09,0x63,0x68,0x61,
   0x69,0x72,0x49,0x64,0x20,0x3a,0x20,0x69,0x6e,0x74,
   0x20,0x3d,0x20,0x33,0x0a,0x7d,0x0a,0x0a,0x42,0x61,
   0x73,0x65,0x4d,0x73,0x67,0x50,0x6c,0x61,0x79,0x65,
   0x72,0x49,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x31,0x38,
   0x20,0x7b,0x20,0x3b,0xe7,0x8e,0xa9,0xe5,0xae,0xb6,
   0xe4,0xbf,0xa1,0xe6,0x81,0xaf,0xef,0xbc,0x8c,0xe8,
   0xaf,0xb7,0xe8,0xa1,0xa5,0xe5,0x85,0x85,0xe5,0x85,
   0xb6,0xe4,0xbb,0x96,0xe9,0x9c,0x80,0xe8,0xa6,0x81,
   0xe7,0x9a,0x84,0xe5,0xad,0x97,0xe6,0xae,0xb5,0x0a,
   0x09,0x75,0x73,0x65,0x72,0x4e,0x61,0x6d,0x65,0x20,
   0x3a,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x3d,
   0x20,0x31,0x20,0x3b,0xe7,0x8e,0xa9,0xe5,0xae,0xb6,
   0xe5,0x90,0x8d,0x0a,0x09,0x69,0x73,0x47,0x75,0x65,
   0x73,0x74,0x20,0x3a,0x20,0x62,0x6f,0x6f,0x6c,0x20,
   0x3d,0x20,0x32,0x20,0x20,0x3b,0xe6,0x98,0xaf,0xe5,
   0x90,0xa6,0xe6,0xb8,0xb8,0xe5,0xae,0xa2,0x0a,0x09,
   0x6e,0x69,0x63,0x6b,0x4e,0x61,0x6d,0x65,0x20,0x3a,
   0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x3d,0x20,
   0x33,0x20,0x3b,0xe6,0x98,0xb5,0xe7,0xa7,0xb0,0x0a,
   0x09,0x61,0x76,0x61,0x74,0x61,0x72,0x49,0x64,0x20,
   0x3a,0x20,0x69,0x6e,0x74,0x20,0x3d,0x20,0x34,0x20,
   0x20,0x20,0x20,0x3b,0xe5,0xa4,0xb4,0xe5,0x83,0x8f,
   0x69,0x64,0x0a,0x09,0x70,0x6c,0x61,0x79,0x65,0x72,
   0x49,0x64,0x20,0x3a,0x20,0x69,0x6e,0x74,0x20,0x3d,
   0x20,0x35,0x20,0x20,0x20,0x20,0x3b,0x20,0xe7,0x8e,
   0xa9,0xe5,0xae,0xb6,0x69,0x64,0x0a,0x09,0x67,0x61,
   0x6d,0x65,0x44,0x61,0x74,0x61,0x20,0x3a,0x20,0x73,
   0x74,0x72,0x69,0x6e,0x67,0x20,0x3d,0x20,0x36,0x3b,
   0xe6,0xb8,0xb8,0xe6,0x88,0x8f,0xe6,0x95,0xb0,0xe6,
   0x8d,0xae,0xef,0xbc,0x8c,0xe9,0x80,0x8f,0xe4,0xbc,
   0xa0,0x0a,0x09,0x73,0x63,0x6f,0x72,0x65,0x20,0x3a,
   0x20,0x69,0x6e,0x74,0x20,0x3d,0x20,0x37,0x3b,0xe5,
   0x88,0x86,0xe6,0x95,0xb0,0x0a,0x09,0x70,0x68,0x6f,
   0x6e,0x65,0x4e,0x6f,0x20,0x3a,0x20,0x73,0x74,0x72,
   0x69,0x6e,0x67,0x20,0x3d,0x20,0x38,0x3b,0xe7,0x94,
   0xb5,0xe8,0xaf,0x9d,0x0a,0x09,0x6c,0x61,0x73,0x74,
   0x4c,0x6f,0x67,0x69,0x6e,0x54,0x69,0x6d,0x65,0x20,
   0x3a,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x3d,
   0x20,0x39,0x3b,0xe4,0xb8,0x8a,0xe6,0xac,0xa1,0xe7,
   0x99,0xbb,0xe5,0xbd,0x95,0xe6,0x97,0xb6,0xe9,0x97,
   0xb4,0x0a,0x7d,0x0a,0x0a,0x42,0x61,0x73,0x65,0x4d,
   0x73,0x67,0x43,0x32,0x53,0x47,0x65,0x74,0x50,0x6c,
   0x61,0x79,0x65,0x72,0x49,0x6e,0x66,0x6f,0x20,0x3d,
   0x20,0x31,0x39,0x20,0x7b,0x3b,0xe8,0x8e,0xb7,0xe5,
   0x8f,0x96,0xe6,0x9f,0x90,0xe4,0xb8,0xaa,0xe7,0x8e,
   0xa9,0xe5,0xae,0xb6,0xe4,0xbf,0xa1,0xe6,0x81,0xaf,
   0x0a,0x09,0x75,0x73,0x65,0x72,0x4e,0x61,0x6d,0x65,
   0x20,0x3a,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,
   0x3d,0x20,0x31,0x3b,0xe7,0x8e,0xa9,0xe5,0xae,0xb6,
   0xe5,0x90,0x8d,0x0a,0x09,0x6e,0x65,0x65,0x64,0x47,
   0x61,0x6d,0x65,0x44,0x61,0x74,0x61,0x20,0x3a,0x20,
   0x62,0x6f,0x6f,0x6c,0x20,0x3d,0x20,0x32,0x3b,0xe6,
   0x98,0xaf,0xe5,0x90,0xa6,0xe9,0x9c,0x80,0xe8,0xa6,
   0x81,0xe6,0xb8,0xb8,0xe6,0x88,0x8f,0xe6,0x95,0xb0,
   0xe6,0x8d,0xae,0x0a,0x7d,0x0a,0x0a,0x42,0x61,0x73,
   0x65,0x4d,0x73,0x67,0x53,0x32,0x43,0x47,0x65,0x74,
   0x50,0x6c,0x61,0x79,0x65,0x72,0x49,0x6e,0x66,0x6f,
   0x20,0x3d,0x20,0x32,0x30,0x20,0x7b,0x0a,0x09,0x69,
   0x73,0x53,0x75,0x63,0x63,0x65,0x73,0x73,0x20,0x3a,
   0x20,0x69,0x6e,0x74,0x20,0x3d,0x20,0x31,0x3b,0xe6,
   0x98,0xaf,0xe5,0x90,0xa6,0xe6,0x88,0x90,0xe5,0x8a,
   0x9f,0x0a,0x09,0x65,0x72,0x72,0x6f,0x72,0x43,0x6f,
   0x64,0x65,0x20,0x3a,0x20,0x69,0x6e,0x74,0x20,0x3d,
   0x20,0x32,0x3b,0xe9,0x94,0x99,0xe8,0xaf,0xaf,0xe7,
   0xa0,0x81,0x0a,0x09,0x70,0x6c,0x61,0x79,0x65,0x72,
   0x49,0x6e,0x66,0x6f,0x20,0x3a,0x20,0x42,0x61,0x73,
   0x65,0x4d,0x73,0x67,0x50,0x6c,0x61,0x79,0x65,0x72,
   0x49,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x33,0x3b,0xe8,
   0xaf,0xb7,0xe6,0xb1,0x82,0xe7,0x9a,0x84,0xe7,0x8e,
   0xa9,0xe5,0xae,0xb6,0xe4,0xbf,0xa1,0xe6,0x81,0xaf,
   0xef,0xbc,0x8c,0xe5,0xa4,0xb1,0xe8,0xb4,0xa5,0xe8,
   0xaf,0xb7,0xe5,0xbf,0xbd,0xe7,0x95,0xa5,0x0a,0x7d,
   0x0a,0x0a,0x42,0x61,0x73,0x65,0x4d,0x73,0x67,0x43,
   0x32,0x53,0x43,0x72,0x65,0x61,0x74,0x65,0x46,0x72,
   0x69,0x65,0x6e,0x64,0x44,0x65,0x73,0x6b,0x20,0x3d,
   0x20,0x32,0x31,0x20,0x7b,0x20,0x3b,0xe5,0x88,0x9b,
   0xe5,0xbb,0xba,0xe6,0x9c,0x8b,0xe5,0x8f,0x8b,0xe5,
   0x9c,0xba,0xe6,0xa1,0x8c,0xe5,0xad,0x90,0x0a,0x7d,
   0x0a,0x0a,0x42,0x61,0x73,0x65,0x4d,0x73,0x67,0x53,
   0x32,0x43,0x43,0x72,0x65,0x61,0x74,0x65,0x46,0x72,
   0x69,0x65,0x6e,0x64,0x44,0x65,0x73,0x6b,0x20,0x3d,
   0x20,0x32,0x32,0x20,0x7b,0x0a,0x09,0x73,0x75,0x63,
   0x63,0x65,0x73,0x73,0x20,0x3a,0x20,0x62,0x6f,0x6f,
   0x6c,0x20,0x3d,0x20,0x31,0x3b,0xe6,0x98,0xaf,0xe5,
   0x90,0xa6,0xe6,0x88,0x90,0xe5,0x8a,0x9f,0x0a,0x09,
   0x65,0x72,0x72,0x6f,0x72,0x43,0x6f,0x64,0x65,0x20,
   0x3a,0x20,0x69,0x6e,0x74,0x20,0x3d,0x20,0x32,0x3b,
   0xe9,0x94,0x99,0xe8,0xaf,0xaf,0xe7,0xa0,0x81,0x0a,
   0x09,0x64,0x65,0x73,0x6b,0x49,0x64,0x20,0x3a,0x20,
   0x69,0x6e,0x74,0x20,0x3d,0x20,0x33,0x3b,0xe6,0xa1,
   0x8c,0xe5,0xad,0x90,0xe5,0x8f,0xb7,0x0a,0x09,0x64,
   0x65,0x73,0x6b,0x43,0x6f,0x64,0x65,0x20,0x3a,0x20,
   0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x3d,0x20,0x34,
   0x3b,0xe6,0xa1,0x8c,0xe5,0xad,0x90,0xe7,0xa0,0x81,
   0x0a,0x7d,0x0a,0x0a,0x42,0x61,0x73,0x65,0x4d,0x73,
   0x67,0x43,0x32,0x53,0x4a,0x6f,0x69,0x6e,0x46,0x72,
   0x69,0x65,0x6e,0x64,0x44,0x65,0x73,0x6b,0x20,0x3d,
   0x20,0x32,0x33,0x20,0x7b,0x20,0x3b,0xe5,0x8a,0xa0,
   0xe5,0x85,0xa5,0xe6,0x9c,0x8b,0xe5,0x8f,0x8b,0xe5,
   0x9c,0xba,0xe6,0xa1,0x8c,0xe5,0xad,0x90,0x0a,0x09,
   0x64,0x65,0x73,0x6b,0x43,0x6f,0x64,0x65,0x20,0x3a,
   0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x3d,0x20,
   0x31,0x3b,0xe6,0xa1,0x8c,0xe5,0xad,0x90,0xe7,0xa0,
   0x81,0x0a,0x7d,0x0a,0x0a,0x42,0x61,0x73,0x65,0x4d,
   0x73,0x67,0x43,0x32,0x53,0x55,0x70,0x64,0x61,0x74,
   0x65,0x52,0x6f,0x6f,0x6d,0x53,0x74,0x61,0x74,0x75,
   0x73,0x20,0x3d,0x20,0x32,0x34,0x20,0x7b,0x0a,0x7d,
   0x0a,0x0a,0x42,0x61,0x73,0x65,0x4d,0x73,0x67,0x53,
   0x32,0x43,0x55,0x70,0x64,0x61,0x74,0x65,0x52,0x6f,
   0x6f,0x6d,0x53,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,
   0x20,0x32,0x35,0x20,0x7b,0x0a,0x09,0x73,0x75,0x63,
   0x63,0x65,0x73,0x73,0x20,0x3a,0x20,0x62,0x6f,0x6f,
   0x6c,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x09,0x72,0x6f,
   0x6f,0x6d,0x53,0x74,0x61,0x74,0x75,0x73,0x20,0x3a,
   0x20,0x42,0x61,0x73,0x65,0x50,0x72,0x6f,0x74,0x6f,
   0x52,0x6f,0x6f,0x6d,0x53,0x74,0x61,0x74,0x65,0x20,
   0x3d,0x20,0x32,0x3b,0x0a,0x7d,0x0a,0x0a,0x42,0x61,
   0x73,0x65,0x4d,0x73,0x67,0x43,0x32,0x53,0x4c,0x65,
   0x61,0x76,0x65,0x52,0x6f,0x6f,0x6d,0x20,0x3d,0x20,
   0x32,0x36,0x20,0x7b,0x0a,0x7d,0x0a,0x0a,0x42,0x61,
   0x73,0x65,0x4d,0x73,0x67,0x43,0x32,0x53,0x55,0x70,
   0x64,0x61,0x74,0x65,0x50,0x6c,0x61,0x79,0x65,0x72,
   0x44,0x61,0x74,0x61,0x20,0x3d,0x20,0x32,0x37,0x20,
   0x7b,0x20,0x3b,0x20,0xe8,0xaf,0xb7,0xe6,0xb1,0x82,
   0xe6,0x9b,0xb4,0xe6,0x96,0xb0,0xe7,0x8e,0xa9,0xe5,
   0xae,0xb6,0xe6,0x95,0xb0,0xe6,0x8d,0xae,0x0a,0x09,
   0x6e,0x69,0x63,0x6b,0x4e,0x61,0x6d,0x65,0x20,0x3a,
   0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x3d,0x20,
   0x31,0x3b,0x09,0x3b,0xe6,0x98,0xb5,0xe7,0xa7,0xb0,
   0x0a,0x09,0x70,0x68,0x6f,0x6e,0x65,0x4e,0x6f,0x20,
   0x3a,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x3d,
   0x20,0x32,0x3b,0x20,0x20,0x20,0x3b,0xe7,0x94,0xb5,
   0xe8,0xaf,0x9d,0xe5,0x8f,0xb7,0xe7,0xa0,0x81,0x0a,
   0x09,0x61,0x76,0x61,0x74,0x6f,0x72,0x49,0x64,0x20,
   0x3a,0x20,0x69,0x6e,0x74,0x20,0x3d,0x20,0x33,0x3b,
   0x20,0x20,0x20,0x20,0x3b,0xe5,0xa4,0xb4,0xe5,0x83,
   0x8f,0x69,0x64,0x0a,0x7d,0x0a,0x0a,0x42,0x61,0x73,
   0x65,0x4d,0x73,0x67,0x53,0x32,0x43,0x55,0x70,0x64,
   0x61,0x74,0x65,0x50,0x6c,0x61,0x79,0x65,0x72,0x49,
   0x6e,0x66,0x6f,0x20,0x3d,0x20,0x32,0x38,0x20,0x7b,
   0x20,0x3b,0xe6,0x9b,0xb4,0xe6,0x96,0xb0,0xe7,0x8e,
   0xa9,0xe5,0xae,0xb6,0xe4,0xbf,0xa1,0xe6,0x81,0xaf,
   0xe5,0x93,0x8d,0xe5,0xba,0x94,0x0a,0x09,0x73,0x75,
   0x63,0x63,0x65,0x73,0x73,0x20,0x3a,0x20,0x62,0x6f,
   0x6f,0x6c,0x20,0x3d,0x20,0x31,0x20,0x3b,0xe6,0x98,
   0xaf,0xe5,0x90,0xa6,0xe6,0x88,0x90,0xe5,0x8a,0x9f,
   0x0a,0x09,0x75,0x73,0x65,0x72,0x4e,0x61,0x6d,0x65,
   0x20,0x3a,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,
   0x3d,0x20,0x32,0x3b,0xe7,0x94,0xa8,0xe6,0x88,0xb7,
   0xe5,0x90,0x8d,0x0a,0x09,0x6e,0x69,0x63,0x6b,0x4e,
   0x61,0x6d,0x65,0x20,0x3a,0x20,0x73,0x74,0x72,0x69,
   0x6e,0x67,0x20,0x3d,0x20,0x33,0x3b,0xe6,0x98,0xb5,
   0xe7,0xa7,0xb0,0x0a,0x09,0x70,0x68,0x6f,0x6e,0x65,
   0x4e,0x6f,0x20,0x3a,0x20,0x73,0x74,0x72,0x69,0x6e,
   0x67,0x20,0x3d,0x20,0x34,0x3b,0xe7,0x94,0xb5,0xe8,
   0xaf,0x9d,0xe5,0x8f,0xb7,0xe7,0xa0,0x81,0x0a,0x09,
   0x61,0x76,0x61,0x74,0x6f,0x72,0x49,0x64,0x20,0x3a,
   0x20,0x69,0x6e,0x74,0x20,0x3d,0x20,0x35,0x3b,0xe5,
   0xa4,0xb4,0xe5,0x83,0x8f,0x69,0x64,0x0a,0x7d,0x0a,
   0x0a,0x42,0x61,0x73,0x65,0x50,0x72,0x6f,0x74,0x6f,
   0x44,0x65,0x73,0x6b,0x49,0x6e,0x66,0x6f,0x20,0x3d,
   0x20,0x38,0x31,0x20,0x7b,0x0a,0x09,0x64,0x65,0x73,
   0x6b,0x49,0x64,0x20,0x3a,0x20,0x69,0x6e,0x74,0x20,
   0x3d,0x20,0x31,0x0a,0x09,0x70,0x6c,0x61,0x79,0x65,
   0x72,0x4e,0x61,0x6d,0x65,0x73,0x20,0x3a,0x20,0x5b,
   0x5d,0x42,0x61,0x73,0x65,0x4d,0x73,0x67,0x50,0x6c,
   0x61,0x79,0x65,0x72,0x49,0x6e,0x66,0x6f,0x20,0x3d,
   0x20,0x32,0x20,0x3b,0xe6,0xa1,0x8c,0xe5,0xad,0x90,
   0xe5,0x86,0x85,0xe7,0x8e,0xa9,0xe5,0xae,0xb6,0xe5,
   0x90,0x8d,0x0a,0x09,0x70,0x6c,0x61,0x79,0x65,0x72,
   0x43,0x68,0x61,0x69,0x72,0x49,0x64,0x73,0x20,0x3a,
   0x20,0x5b,0x5d,0x69,0x6e,0x74,0x20,0x3d,0x20,0x33,
   0x20,0x3b,0xe6,0xa4,0x85,0xe5,0xad,0x90,0xe4,0xbf,
   0xa1,0xe6,0x81,0xaf,0xef,0xbc,0x8c,0xe8,0xb7,0x9f,
   0xe7,0x8e,0xa9,0xe5,0xae,0xb6,0xe4,0xbf,0xa1,0xe6,
   0x81,0xaf,0xe4,0xb8,0x80,0xe4,0xb8,0x80,0xe5,0xaf,
   0xb9,0xe5,0xba,0x94,0x0a,0x09,0x64,0x65,0x73,0x6b,
   0x43,0x6f,0x64,0x65,0x20,0x3a,0x20,0x73,0x74,0x72,
   0x69,0x6e,0x67,0x20,0x3d,0x20,0x34,0x3b,0xe6,0xa1,
   0x8c,0xe5,0xad,0x90,0xe7,0xa0,0x81,0x0a,0x09,0x69,
   0x73,0x46,0x72,0x69,0x65,0x6e,0x64,0x20,0x3a,0x20,
   0x62,0x6f,0x6f,0x6c,0x20,0x3d,0x20,0x35,0x3b,0xe6,
   0x98,0xaf,0xe5,0x90,0xa6,0xe6,0x98,0xaf,0xe6,0x9c,
   0x8b,0xe5,0x8f,0x8b,0xe5,0x9c,0xba,0x0a,0x7d,0x0a,
   0x0a,0x42,0x61,0x73,0x65,0x50,0x72,0x6f,0x74,0x6f,
   0x52,0x6f,0x6f,0x6d,0x53,0x74,0x61,0x74,0x65,0x20,
   0x3d,0x20,0x38,0x32,0x20,0x7b,0x3b,0xe6,0x88,0xbf,
   0xe9,0x97,0xb4,0xe7,0x8a,0xb6,0xe6,0x80,0x81,0x0a,
   0x09,0x72,0x6f,0x6f,0x6d,0x49,0x64,0x20,0x3a,0x20,
   0x69,0x6e,0x74,0x20,0x3d,0x20,0x31,0x3b,0xe6,0x88,
   0xbf,0xe9,0x97,0xb4,0x69,0x64,0x0a,0x09,0x6d,0x61,
   0x78,0x50,0x6c,0x61,0x79,0x65,0x72,0x43,0x6f,0x75,
   0x6e,0x74,0x20,0x3a,0x20,0x69,0x6e,0x74,0x20,0x3d,
   0x20,0x32,0x3b,0xe6,0x9c,0x80,0xe5,0xa4,0xa7,0xe7,
   0x8e,0xa9,0xe5,0xae,0xb6,0xe4,0xb8,0xaa,0xe6,0x95,
   0xb0,0x0a,0x09,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,
   0x50,0x6c,0x61,0x79,0x65,0x72,0x43,0x6f,0x75,0x6e,
   0x74,0x20,0x3a,0x20,0x69,0x6e,0x74,0x20,0x3d,0x20,
   0x33,0x3b,0xe7,0x8e,0xa9,0xe5,0xae,0xb6,0xe4,0xb8,
   0xaa,0xe6,0x95,0xb0,0x0a,0x09,0x73,0x65,0x72,0x76,
   0x65,0x72,0x41,0x64,0x64,0x72,0x20,0x3a,0x20,0x73,
   0x74,0x72,0x69,0x6e,0x67,0x20,0x3d,0x20,0x34,0x3b,
   0xe6,0x88,0xbf,0xe9,0x97,0xb4,0xe6,0x9c,0x8d,0xe5,
   0x8a,0xa1,0xe5,0x99,0xa8,0xe5,0x9c,0xb0,0xe5,0x9d,
   0x80,0xef,0xbc,0x8c,0xe6,0xa0,0xbc,0xe5,0xbc,0x8f,
   0xe4,0xb8,0xba,0x68,0x6f,0x73,0x74,0x3a,0x70,0x6f,
   0x72,0x74,0x2c,0xe6,0x9a,0x82,0xe6,0x9c,0xaa,0xe4,
   0xbd,0xbf,0xe7,0x94,0xa8,0x0a,0x09,0x72,0x6f,0x6f,
   0x6d,0x54,0x79,0x70,0x65,0x20,0x3a,0x20,0x69,0x6e,
   0x74,0x20,0x3d,0x20,0x35,0x3b,0xe6,0x88,0xbf,0xe9,
   0x97,0xb4,0xe7,0xb1,0xbb,0xe5,0x9e,0x8b,0x0a,0x7d,
   0x0a,0x00
};

JMsgProto* game_base_msgCreateProto() { return JMsgProto::createProto((char*)s_protoString); }

BaseMsgC2SActivate::BaseMsgC2SActivate() {
}

static bool onBaseMsgC2SActivateDecode(JMsgProto* proto, JMsgField* field, JMsgReader* reader, void* args) {
   bool isSuccess = false;
   BaseMsgC2SActivate* value = (BaseMsgC2SActivate*)args;
   switch(field->m_id) {
   case 1: {
      value->guestUserName = reader->readString(isSuccess);
      break;
   }
   case 2: {
      value->userName = reader->readString(isSuccess);
      break;
   }
   case 3: {
      value->passwordSha1 = reader->readString(isSuccess);
      break;
   }
   case 4: {
      value->phoneNo = reader->readString(isSuccess);
      break;
   }
   default:
      break;
   }
   return isSuccess;
}

static bool onBaseMsgC2SActivateEncode(JMsgProto* proto, JMsgField* field, JMsgWriter* writer, void* args) {
   BaseMsgC2SActivate* value = (BaseMsgC2SActivate*)args;
   switch(field->m_id) {
   case 1: {
      writer->writeStringField(field, value->guestUserName);
      break;
   }
   case 2: {
      writer->writeStringField(field, value->userName);
      break;
   }
   case 3: {
      writer->writeStringField(field, value->passwordSha1);
      break;
   }
   case 4: {
      writer->writeStringField(field, value->phoneNo);
      break;
   }
   default:
      break;
   }
   return true;
}
void BaseMsgC2SActivate::encode(JMsgProto* proto, JMsgWriter* writer) {
   proto->encode(3, writer, onBaseMsgC2SActivateEncode, this);
}
bool BaseMsgC2SActivate::decode(JMsgProto* proto, JMsgReader* reader) {
   return proto->decode(reader, onBaseMsgC2SActivateDecode, this) == 3;
}
BaseMsgC2SCreateFriendDesk::BaseMsgC2SCreateFriendDesk() {
}

static bool onBaseMsgC2SCreateFriendDeskDecode(JMsgProto* proto, JMsgField* field, JMsgReader* reader, void* args) {
   return true;
}

static bool onBaseMsgC2SCreateFriendDeskEncode(JMsgProto* proto, JMsgField* field, JMsgWriter* writer, void* args) {
   return true;
}
void BaseMsgC2SCreateFriendDesk::encode(JMsgProto* proto, JMsgWriter* writer) {
   proto->encode(21, writer, onBaseMsgC2SCreateFriendDeskEncode, this);
}
bool BaseMsgC2SCreateFriendDesk::decode(JMsgProto* proto, JMsgReader* reader) {
   return proto->decode(reader, onBaseMsgC2SCreateFriendDeskDecode, this) == 21;
}
BaseMsgC2SGetPlayerInfo::BaseMsgC2SGetPlayerInfo() {
   needGameData = false;
}

static bool onBaseMsgC2SGetPlayerInfoDecode(JMsgProto* proto, JMsgField* field, JMsgReader* reader, void* args) {
   bool isSuccess = false;
   BaseMsgC2SGetPlayerInfo* value = (BaseMsgC2SGetPlayerInfo*)args;
   switch(field->m_id) {
   case 1: {
      value->userName = reader->readString(isSuccess);
      break;
   }
   case 2: {
      value->needGameData = reader->readBool(isSuccess);
      break;
   }
   default:
      break;
   }
   return isSuccess;
}

static bool onBaseMsgC2SGetPlayerInfoEncode(JMsgProto* proto, JMsgField* field, JMsgWriter* writer, void* args) {
   BaseMsgC2SGetPlayerInfo* value = (BaseMsgC2SGetPlayerInfo*)args;
   switch(field->m_id) {
   case 1: {
      writer->writeStringField(field, value->userName);
      break;
   }
   case 2: {
      writer->writeBoolField(field, value->needGameData);
      break;
   }
   default:
      break;
   }
   return true;
}
void BaseMsgC2SGetPlayerInfo::encode(JMsgProto* proto, JMsgWriter* writer) {
   proto->encode(19, writer, onBaseMsgC2SGetPlayerInfoEncode, this);
}
bool BaseMsgC2SGetPlayerInfo::decode(JMsgProto* proto, JMsgReader* reader) {
   return proto->decode(reader, onBaseMsgC2SGetPlayerInfoDecode, this) == 19;
}
BaseMsgC2SJoinDesk::BaseMsgC2SJoinDesk() {
   deskId = 0;
   chairId = 0;
}

static bool onBaseMsgC2SJoinDeskDecode(JMsgProto* proto, JMsgField* field, JMsgReader* reader, void* args) {
   bool isSuccess = false;
   BaseMsgC2SJoinDesk* value = (BaseMsgC2SJoinDesk*)args;
   switch(field->m_id) {
   case 1: {
      value->deskId = reader->readInt(isSuccess);
      break;
   }
   case 2: {
      value->chairId = reader->readInt(isSuccess);
      break;
   }
   default:
      break;
   }
   return isSuccess;
}

static bool onBaseMsgC2SJoinDeskEncode(JMsgProto* proto, JMsgField* field, JMsgWriter* writer, void* args) {
   BaseMsgC2SJoinDesk* value = (BaseMsgC2SJoinDesk*)args;
   switch(field->m_id) {
   case 1: {
      writer->writeIntField(field, value->deskId);
      break;
   }
   case 2: {
      writer->writeIntField(field, value->chairId);
      break;
   }
   default:
      break;
   }
   return true;
}
void BaseMsgC2SJoinDesk::encode(JMsgProto* proto, JMsgWriter* writer) {
   proto->encode(9, writer, onBaseMsgC2SJoinDeskEncode, this);
}
bool BaseMsgC2SJoinDesk::decode(JMsgProto* proto, JMsgReader* reader) {
   return proto->decode(reader, onBaseMsgC2SJoinDeskDecode, this) == 9;
}
BaseMsgC2SJoinFriendDesk::BaseMsgC2SJoinFriendDesk() {
}

static bool onBaseMsgC2SJoinFriendDeskDecode(JMsgProto* proto, JMsgField* field, JMsgReader* reader, void* args) {
   bool isSuccess = false;
   BaseMsgC2SJoinFriendDesk* value = (BaseMsgC2SJoinFriendDesk*)args;
   switch(field->m_id) {
   case 1: {
      value->deskCode = reader->readString(isSuccess);
      break;
   }
   default:
      break;
   }
   return isSuccess;
}

static bool onBaseMsgC2SJoinFriendDeskEncode(JMsgProto* proto, JMsgField* field, JMsgWriter* writer, void* args) {
   BaseMsgC2SJoinFriendDesk* value = (BaseMsgC2SJoinFriendDesk*)args;
   switch(field->m_id) {
   case 1: {
      writer->writeStringField(field, value->deskCode);
      break;
   }
   default:
      break;
   }
   return true;
}
void BaseMsgC2SJoinFriendDesk::encode(JMsgProto* proto, JMsgWriter* writer) {
   proto->encode(23, writer, onBaseMsgC2SJoinFriendDeskEncode, this);
}
bool BaseMsgC2SJoinFriendDesk::decode(JMsgProto* proto, JMsgReader* reader) {
   return proto->decode(reader, onBaseMsgC2SJoinFriendDeskDecode, this) == 23;
}
BaseMsgC2SJoinRoom::BaseMsgC2SJoinRoom() {
   roomId = 0;
}

static bool onBaseMsgC2SJoinRoomDecode(JMsgProto* proto, JMsgField* field, JMsgReader* reader, void* args) {
   bool isSuccess = false;
   BaseMsgC2SJoinRoom* value = (BaseMsgC2SJoinRoom*)args;
   switch(field->m_id) {
   case 1: {
      value->roomId = reader->readInt(isSuccess);
      break;
   }
   default:
      break;
   }
   return isSuccess;
}

static bool onBaseMsgC2SJoinRoomEncode(JMsgProto* proto, JMsgField* field, JMsgWriter* writer, void* args) {
   BaseMsgC2SJoinRoom* value = (BaseMsgC2SJoinRoom*)args;
   switch(field->m_id) {
   case 1: {
      writer->writeIntField(field, value->roomId);
      break;
   }
   default:
      break;
   }
   return true;
}
void BaseMsgC2SJoinRoom::encode(JMsgProto* proto, JMsgWriter* writer) {
   proto->encode(7, writer, onBaseMsgC2SJoinRoomEncode, this);
}
bool BaseMsgC2SJoinRoom::decode(JMsgProto* proto, JMsgReader* reader) {
   return proto->decode(reader, onBaseMsgC2SJoinRoomDecode, this) == 7;
}
BaseMsgC2SLeaveDesk::BaseMsgC2SLeaveDesk() {
}

static bool onBaseMsgC2SLeaveDeskDecode(JMsgProto* proto, JMsgField* field, JMsgReader* reader, void* args) {
   return true;
}

static bool onBaseMsgC2SLeaveDeskEncode(JMsgProto* proto, JMsgField* field, JMsgWriter* writer, void* args) {
   return true;
}
void BaseMsgC2SLeaveDesk::encode(JMsgProto* proto, JMsgWriter* writer) {
   proto->encode(11, writer, onBaseMsgC2SLeaveDeskEncode, this);
}
bool BaseMsgC2SLeaveDesk::decode(JMsgProto* proto, JMsgReader* reader) {
   return proto->decode(reader, onBaseMsgC2SLeaveDeskDecode, this) == 11;
}
BaseMsgC2SLeaveRoom::BaseMsgC2SLeaveRoom() {
}

static bool onBaseMsgC2SLeaveRoomDecode(JMsgProto* proto, JMsgField* field, JMsgReader* reader, void* args) {
   return true;
}

static bool onBaseMsgC2SLeaveRoomEncode(JMsgProto* proto, JMsgField* field, JMsgWriter* writer, void* args) {
   return true;
}
void BaseMsgC2SLeaveRoom::encode(JMsgProto* proto, JMsgWriter* writer) {
   proto->encode(26, writer, onBaseMsgC2SLeaveRoomEncode, this);
}
bool BaseMsgC2SLeaveRoom::decode(JMsgProto* proto, JMsgReader* reader) {
   return proto->decode(reader, onBaseMsgC2SLeaveRoomDecode, this) == 26;
}
BaseMsgC2SLogin::BaseMsgC2SLogin() {
   isGuest = false;
}

static bool onBaseMsgC2SLoginDecode(JMsgProto* proto, JMsgField* field, JMsgReader* reader, void* args) {
   bool isSuccess = false;
   BaseMsgC2SLogin* value = (BaseMsgC2SLogin*)args;
   switch(field->m_id) {
   case 1: {
      value->userName = reader->readString(isSuccess);
      break;
   }
   case 2: {
      value->password = reader->readString(isSuccess);
      break;
   }
   case 3: {
      value->gameName = reader->readString(isSuccess);
      break;
   }
   case 4: {
      value->isGuest = reader->readBool(isSuccess);
      break;
   }
   default:
      break;
   }
   return isSuccess;
}

static bool onBaseMsgC2SLoginEncode(JMsgProto* proto, JMsgField* field, JMsgWriter* writer, void* args) {
   BaseMsgC2SLogin* value = (BaseMsgC2SLogin*)args;
   switch(field->m_id) {
   case 1: {
      writer->writeStringField(field, value->userName);
      break;
   }
   case 2: {
      writer->writeStringField(field, value->password);
      break;
   }
   case 3: {
      writer->writeStringField(field, value->gameName);
      break;
   }
   case 4: {
      writer->writeBoolField(field, value->isGuest);
      break;
   }
   default:
      break;
   }
   return true;
}
void BaseMsgC2SLogin::encode(JMsgProto* proto, JMsgWriter* writer) {
   proto->encode(5, writer, onBaseMsgC2SLoginEncode, this);
}
bool BaseMsgC2SLogin::decode(JMsgProto* proto, JMsgReader* reader) {
   return proto->decode(reader, onBaseMsgC2SLoginDecode, this) == 5;
}
BaseMsgC2SRegister::BaseMsgC2SRegister() {
}

static bool onBaseMsgC2SRegisterDecode(JMsgProto* proto, JMsgField* field, JMsgReader* reader, void* args) {
   bool isSuccess = false;
   BaseMsgC2SRegister* value = (BaseMsgC2SRegister*)args;
   switch(field->m_id) {
   case 1: {
      value->userName = reader->readString(isSuccess);
      break;
   }
   case 2: {
      value->passwordSha1 = reader->readString(isSuccess);
      break;
   }
   default:
      break;
   }
   return isSuccess;
}

static bool onBaseMsgC2SRegisterEncode(JMsgProto* proto, JMsgField* field, JMsgWriter* writer, void* args) {
   BaseMsgC2SRegister* value = (BaseMsgC2SRegister*)args;
   switch(field->m_id) {
   case 1: {
      writer->writeStringField(field, value->userName);
      break;
   }
   case 2: {
      writer->writeStringField(field, value->passwordSha1);
      break;
   }
   default:
      break;
   }
   return true;
}
void BaseMsgC2SRegister::encode(JMsgProto* proto, JMsgWriter* writer) {
   proto->encode(1, writer, onBaseMsgC2SRegisterEncode, this);
}
bool BaseMsgC2SRegister::decode(JMsgProto* proto, JMsgReader* reader) {
   return proto->decode(reader, onBaseMsgC2SRegisterDecode, this) == 1;
}
BaseMsgC2SUpdatePlayerData::BaseMsgC2SUpdatePlayerData() {
   avatorId = 0;
}

static bool onBaseMsgC2SUpdatePlayerDataDecode(JMsgProto* proto, JMsgField* field, JMsgReader* reader, void* args) {
   bool isSuccess = false;
   BaseMsgC2SUpdatePlayerData* value = (BaseMsgC2SUpdatePlayerData*)args;
   switch(field->m_id) {
   case 1: {
      value->nickName = reader->readString(isSuccess);
      break;
   }
   case 2: {
      value->phoneNo = reader->readString(isSuccess);
      break;
   }
   case 3: {
      value->avatorId = reader->readInt(isSuccess);
      break;
   }
   default:
      break;
   }
   return isSuccess;
}

static bool onBaseMsgC2SUpdatePlayerDataEncode(JMsgProto* proto, JMsgField* field, JMsgWriter* writer, void* args) {
   BaseMsgC2SUpdatePlayerData* value = (BaseMsgC2SUpdatePlayerData*)args;
   switch(field->m_id) {
   case 1: {
      writer->writeStringField(field, value->nickName);
      break;
   }
   case 2: {
      writer->writeStringField(field, value->phoneNo);
      break;
   }
   case 3: {
      writer->writeIntField(field, value->avatorId);
      break;
   }
   default:
      break;
   }
   return true;
}
void BaseMsgC2SUpdatePlayerData::encode(JMsgProto* proto, JMsgWriter* writer) {
   proto->encode(27, writer, onBaseMsgC2SUpdatePlayerDataEncode, this);
}
bool BaseMsgC2SUpdatePlayerData::decode(JMsgProto* proto, JMsgReader* reader) {
   return proto->decode(reader, onBaseMsgC2SUpdatePlayerDataDecode, this) == 27;
}
BaseMsgC2SUpdateRoomStatus::BaseMsgC2SUpdateRoomStatus() {
}

static bool onBaseMsgC2SUpdateRoomStatusDecode(JMsgProto* proto, JMsgField* field, JMsgReader* reader, void* args) {
   return true;
}

static bool onBaseMsgC2SUpdateRoomStatusEncode(JMsgProto* proto, JMsgField* field, JMsgWriter* writer, void* args) {
   return true;
}
void BaseMsgC2SUpdateRoomStatus::encode(JMsgProto* proto, JMsgWriter* writer) {
   proto->encode(24, writer, onBaseMsgC2SUpdateRoomStatusEncode, this);
}
bool BaseMsgC2SUpdateRoomStatus::decode(JMsgProto* proto, JMsgReader* reader) {
   return proto->decode(reader, onBaseMsgC2SUpdateRoomStatusDecode, this) == 24;
}
BaseMsgPlayerInfo::BaseMsgPlayerInfo() {
   isGuest = false;
   avatarId = 0;
   playerId = 0;
   score = 0;
}

static bool onBaseMsgPlayerInfoDecode(JMsgProto* proto, JMsgField* field, JMsgReader* reader, void* args) {
   bool isSuccess = false;
   BaseMsgPlayerInfo* value = (BaseMsgPlayerInfo*)args;
   switch(field->m_id) {
   case 1: {
      value->userName = reader->readString(isSuccess);
      break;
   }
   case 2: {
      value->isGuest = reader->readBool(isSuccess);
      break;
   }
   case 3: {
      value->nickName = reader->readString(isSuccess);
      break;
   }
   case 4: {
      value->avatarId = reader->readInt(isSuccess);
      break;
   }
   case 5: {
      value->playerId = reader->readInt(isSuccess);
      break;
   }
   case 6: {
      value->gameData = reader->readString(isSuccess);
      break;
   }
   case 7: {
      value->score = reader->readInt(isSuccess);
      break;
   }
   case 8: {
      value->phoneNo = reader->readString(isSuccess);
      break;
   }
   case 9: {
      value->lastLoginTime = reader->readString(isSuccess);
      break;
   }
   default:
      break;
   }
   return isSuccess;
}

static bool onBaseMsgPlayerInfoEncode(JMsgProto* proto, JMsgField* field, JMsgWriter* writer, void* args) {
   BaseMsgPlayerInfo* value = (BaseMsgPlayerInfo*)args;
   switch(field->m_id) {
   case 1: {
      writer->writeStringField(field, value->userName);
      break;
   }
   case 2: {
      writer->writeBoolField(field, value->isGuest);
      break;
   }
   case 3: {
      writer->writeStringField(field, value->nickName);
      break;
   }
   case 4: {
      writer->writeIntField(field, value->avatarId);
      break;
   }
   case 5: {
      writer->writeIntField(field, value->playerId);
      break;
   }
   case 6: {
      writer->writeStringField(field, value->gameData);
      break;
   }
   case 7: {
      writer->writeIntField(field, value->score);
      break;
   }
   case 8: {
      writer->writeStringField(field, value->phoneNo);
      break;
   }
   case 9: {
      writer->writeStringField(field, value->lastLoginTime);
      break;
   }
   default:
      break;
   }
   return true;
}
void BaseMsgPlayerInfo::encode(JMsgProto* proto, JMsgWriter* writer) {
   proto->encode(18, writer, onBaseMsgPlayerInfoEncode, this);
}
bool BaseMsgPlayerInfo::decode(JMsgProto* proto, JMsgReader* reader) {
   return proto->decode(reader, onBaseMsgPlayerInfoDecode, this) == 18;
}
BaseMsgDeskS2COtherPlayerJoinDesk::BaseMsgDeskS2COtherPlayerJoinDesk() {
   deskId = 0;
   chairId = 0;
}

static bool onBaseMsgDeskS2COtherPlayerJoinDeskDecode(JMsgProto* proto, JMsgField* field, JMsgReader* reader, void* args) {
   bool isSuccess = false;
   BaseMsgDeskS2COtherPlayerJoinDesk* value = (BaseMsgDeskS2COtherPlayerJoinDesk*)args;
   switch(field->m_id) {
   case 1: {
      isSuccess = value->playerInfo.decode(proto, reader);
      break;
   }
   case 2: {
      value->deskId = reader->readInt(isSuccess);
      break;
   }
   case 3: {
      value->chairId = reader->readInt(isSuccess);
      break;
   }
   default:
      break;
   }
   return isSuccess;
}

static bool onBaseMsgDeskS2COtherPlayerJoinDeskEncode(JMsgProto* proto, JMsgField* field, JMsgWriter* writer, void* args) {
   BaseMsgDeskS2COtherPlayerJoinDesk* value = (BaseMsgDeskS2COtherPlayerJoinDesk*)args;
   switch(field->m_id) {
   case 1: {
      writer->writeFieldHeader(field);
      value->playerInfo.encode(proto, writer);
      break;
   }
   case 2: {
      writer->writeIntField(field, value->deskId);
      break;
   }
   case 3: {
      writer->writeIntField(field, value->chairId);
      break;
   }
   default:
      break;
   }
   return true;
}
void BaseMsgDeskS2COtherPlayerJoinDesk::encode(JMsgProto* proto, JMsgWriter* writer) {
   proto->encode(16, writer, onBaseMsgDeskS2COtherPlayerJoinDeskEncode, this);
}
bool BaseMsgDeskS2COtherPlayerJoinDesk::decode(JMsgProto* proto, JMsgReader* reader) {
   return proto->decode(reader, onBaseMsgDeskS2COtherPlayerJoinDeskDecode, this) == 16;
}
BaseMsgDeskS2COtherPlayerLeaveDesk::BaseMsgDeskS2COtherPlayerLeaveDesk() {
   deskId = 0;
   chairId = 0;
}

static bool onBaseMsgDeskS2COtherPlayerLeaveDeskDecode(JMsgProto* proto, JMsgField* field, JMsgReader* reader, void* args) {
   bool isSuccess = false;
   BaseMsgDeskS2COtherPlayerLeaveDesk* value = (BaseMsgDeskS2COtherPlayerLeaveDesk*)args;
   switch(field->m_id) {
   case 1: {
      value->userName = reader->readString(isSuccess);
      break;
   }
   case 2: {
      value->deskId = reader->readInt(isSuccess);
      break;
   }
   case 3: {
      value->chairId = reader->readInt(isSuccess);
      break;
   }
   default:
      break;
   }
   return isSuccess;
}

static bool onBaseMsgDeskS2COtherPlayerLeaveDeskEncode(JMsgProto* proto, JMsgField* field, JMsgWriter* writer, void* args) {
   BaseMsgDeskS2COtherPlayerLeaveDesk* value = (BaseMsgDeskS2COtherPlayerLeaveDesk*)args;
   switch(field->m_id) {
   case 1: {
      writer->writeStringField(field, value->userName);
      break;
   }
   case 2: {
      writer->writeIntField(field, value->deskId);
      break;
   }
   case 3: {
      writer->writeIntField(field, value->chairId);
      break;
   }
   default:
      break;
   }
   return true;
}
void BaseMsgDeskS2COtherPlayerLeaveDesk::encode(JMsgProto* proto, JMsgWriter* writer) {
   proto->encode(17, writer, onBaseMsgDeskS2COtherPlayerLeaveDeskEncode, this);
}
bool BaseMsgDeskS2COtherPlayerLeaveDesk::decode(JMsgProto* proto, JMsgReader* reader) {
   return proto->decode(reader, onBaseMsgDeskS2COtherPlayerLeaveDeskDecode, this) == 17;
}
BaseMsgRoomS2COtherPlayerJoinDesk::BaseMsgRoomS2COtherPlayerJoinDesk() {
   deskId = 0;
   chairId = 0;
}

static bool onBaseMsgRoomS2COtherPlayerJoinDeskDecode(JMsgProto* proto, JMsgField* field, JMsgReader* reader, void* args) {
   bool isSuccess = false;
   BaseMsgRoomS2COtherPlayerJoinDesk* value = (BaseMsgRoomS2COtherPlayerJoinDesk*)args;
   switch(field->m_id) {
   case 1: {
      value->deskId = reader->readInt(isSuccess);
      break;
   }
   case 2: {
      value->chairId = reader->readInt(isSuccess);
      break;
   }
   case 3: {
      value->userName = reader->readString(isSuccess);
      break;
   }
   default:
      break;
   }
   return isSuccess;
}

static bool onBaseMsgRoomS2COtherPlayerJoinDeskEncode(JMsgProto* proto, JMsgField* field, JMsgWriter* writer, void* args) {
   BaseMsgRoomS2COtherPlayerJoinDesk* value = (BaseMsgRoomS2COtherPlayerJoinDesk*)args;
   switch(field->m_id) {
   case 1: {
      writer->writeIntField(field, value->deskId);
      break;
   }
   case 2: {
      writer->writeIntField(field, value->chairId);
      break;
   }
   case 3: {
      writer->writeStringField(field, value->userName);
      break;
   }
   default:
      break;
   }
   return true;
}
void BaseMsgRoomS2COtherPlayerJoinDesk::encode(JMsgProto* proto, JMsgWriter* writer) {
   proto->encode(14, writer, onBaseMsgRoomS2COtherPlayerJoinDeskEncode, this);
}
bool BaseMsgRoomS2COtherPlayerJoinDesk::decode(JMsgProto* proto, JMsgReader* reader) {
   return proto->decode(reader, onBaseMsgRoomS2COtherPlayerJoinDeskDecode, this) == 14;
}
BaseMsgRoomS2COtherPlayerLeaveDesk::BaseMsgRoomS2COtherPlayerLeaveDesk() {
   deskId = 0;
   chairId = 0;
}

static bool onBaseMsgRoomS2COtherPlayerLeaveDeskDecode(JMsgProto* proto, JMsgField* field, JMsgReader* reader, void* args) {
   bool isSuccess = false;
   BaseMsgRoomS2COtherPlayerLeaveDesk* value = (BaseMsgRoomS2COtherPlayerLeaveDesk*)args;
   switch(field->m_id) {
   case 1: {
      value->deskId = reader->readInt(isSuccess);
      break;
   }
   case 2: {
      value->chairId = reader->readInt(isSuccess);
      break;
   }
   case 3: {
      value->userName = reader->readString(isSuccess);
      break;
   }
   default:
      break;
   }
   return isSuccess;
}

static bool onBaseMsgRoomS2COtherPlayerLeaveDeskEncode(JMsgProto* proto, JMsgField* field, JMsgWriter* writer, void* args) {
   BaseMsgRoomS2COtherPlayerLeaveDesk* value = (BaseMsgRoomS2COtherPlayerLeaveDesk*)args;
   switch(field->m_id) {
   case 1: {
      writer->writeIntField(field, value->deskId);
      break;
   }
   case 2: {
      writer->writeIntField(field, value->chairId);
      break;
   }
   case 3: {
      writer->writeStringField(field, value->userName);
      break;
   }
   default:
      break;
   }
   return true;
}
void BaseMsgRoomS2COtherPlayerLeaveDesk::encode(JMsgProto* proto, JMsgWriter* writer) {
   proto->encode(15, writer, onBaseMsgRoomS2COtherPlayerLeaveDeskEncode, this);
}
bool BaseMsgRoomS2COtherPlayerLeaveDesk::decode(JMsgProto* proto, JMsgReader* reader) {
   return proto->decode(reader, onBaseMsgRoomS2COtherPlayerLeaveDeskDecode, this) == 15;
}
BaseMsgS2CActivate::BaseMsgS2CActivate() {
   isSuccess = false;
   errorCode = 0;
}

static bool onBaseMsgS2CActivateDecode(JMsgProto* proto, JMsgField* field, JMsgReader* reader, void* args) {
   bool isSuccess = false;
   BaseMsgS2CActivate* value = (BaseMsgS2CActivate*)args;
   switch(field->m_id) {
   case 1: {
      value->isSuccess = reader->readBool(isSuccess);
      break;
   }
   case 2: {
      value->errorCode = reader->readInt(isSuccess);
      break;
   }
   case 3: {
      value->newUserName = reader->readString(isSuccess);
      break;
   }
   default:
      break;
   }
   return isSuccess;
}

static bool onBaseMsgS2CActivateEncode(JMsgProto* proto, JMsgField* field, JMsgWriter* writer, void* args) {
   BaseMsgS2CActivate* value = (BaseMsgS2CActivate*)args;
   switch(field->m_id) {
   case 1: {
      writer->writeBoolField(field, value->isSuccess);
      break;
   }
   case 2: {
      writer->writeIntField(field, value->errorCode);
      break;
   }
   case 3: {
      writer->writeStringField(field, value->newUserName);
      break;
   }
   default:
      break;
   }
   return true;
}
void BaseMsgS2CActivate::encode(JMsgProto* proto, JMsgWriter* writer) {
   proto->encode(4, writer, onBaseMsgS2CActivateEncode, this);
}
bool BaseMsgS2CActivate::decode(JMsgProto* proto, JMsgReader* reader) {
   return proto->decode(reader, onBaseMsgS2CActivateDecode, this) == 4;
}
BaseMsgS2CCreateFriendDesk::BaseMsgS2CCreateFriendDesk() {
   success = false;
   errorCode = 0;
   deskId = 0;
}

static bool onBaseMsgS2CCreateFriendDeskDecode(JMsgProto* proto, JMsgField* field, JMsgReader* reader, void* args) {
   bool isSuccess = false;
   BaseMsgS2CCreateFriendDesk* value = (BaseMsgS2CCreateFriendDesk*)args;
   switch(field->m_id) {
   case 1: {
      value->success = reader->readBool(isSuccess);
      break;
   }
   case 2: {
      value->errorCode = reader->readInt(isSuccess);
      break;
   }
   case 3: {
      value->deskId = reader->readInt(isSuccess);
      break;
   }
   case 4: {
      value->deskCode = reader->readString(isSuccess);
      break;
   }
   default:
      break;
   }
   return isSuccess;
}

static bool onBaseMsgS2CCreateFriendDeskEncode(JMsgProto* proto, JMsgField* field, JMsgWriter* writer, void* args) {
   BaseMsgS2CCreateFriendDesk* value = (BaseMsgS2CCreateFriendDesk*)args;
   switch(field->m_id) {
   case 1: {
      writer->writeBoolField(field, value->success);
      break;
   }
   case 2: {
      writer->writeIntField(field, value->errorCode);
      break;
   }
   case 3: {
      writer->writeIntField(field, value->deskId);
      break;
   }
   case 4: {
      writer->writeStringField(field, value->deskCode);
      break;
   }
   default:
      break;
   }
   return true;
}
void BaseMsgS2CCreateFriendDesk::encode(JMsgProto* proto, JMsgWriter* writer) {
   proto->encode(22, writer, onBaseMsgS2CCreateFriendDeskEncode, this);
}
bool BaseMsgS2CCreateFriendDesk::decode(JMsgProto* proto, JMsgReader* reader) {
   return proto->decode(reader, onBaseMsgS2CCreateFriendDeskDecode, this) == 22;
}
BaseMsgS2CGetPlayerInfo::BaseMsgS2CGetPlayerInfo() {
   isSuccess = 0;
   errorCode = 0;
}

static bool onBaseMsgS2CGetPlayerInfoDecode(JMsgProto* proto, JMsgField* field, JMsgReader* reader, void* args) {
   bool isSuccess = false;
   BaseMsgS2CGetPlayerInfo* value = (BaseMsgS2CGetPlayerInfo*)args;
   switch(field->m_id) {
   case 1: {
      value->isSuccess = reader->readInt(isSuccess);
      break;
   }
   case 2: {
      value->errorCode = reader->readInt(isSuccess);
      break;
   }
   case 3: {
      isSuccess = value->playerInfo.decode(proto, reader);
      break;
   }
   default:
      break;
   }
   return isSuccess;
}

static bool onBaseMsgS2CGetPlayerInfoEncode(JMsgProto* proto, JMsgField* field, JMsgWriter* writer, void* args) {
   BaseMsgS2CGetPlayerInfo* value = (BaseMsgS2CGetPlayerInfo*)args;
   switch(field->m_id) {
   case 1: {
      writer->writeIntField(field, value->isSuccess);
      break;
   }
   case 2: {
      writer->writeIntField(field, value->errorCode);
      break;
   }
   case 3: {
      writer->writeFieldHeader(field);
      value->playerInfo.encode(proto, writer);
      break;
   }
   default:
      break;
   }
   return true;
}
void BaseMsgS2CGetPlayerInfo::encode(JMsgProto* proto, JMsgWriter* writer) {
   proto->encode(20, writer, onBaseMsgS2CGetPlayerInfoEncode, this);
}
bool BaseMsgS2CGetPlayerInfo::decode(JMsgProto* proto, JMsgReader* reader) {
   return proto->decode(reader, onBaseMsgS2CGetPlayerInfoDecode, this) == 20;
}
BaseProtoDeskInfo::BaseProtoDeskInfo() {
   deskId = 0;
   isFriend = false;
}

static bool onBaseProtoDeskInfoDecode(JMsgProto* proto, JMsgField* field, JMsgReader* reader, void* args) {
   bool isSuccess = false;
   BaseProtoDeskInfo* value = (BaseProtoDeskInfo*)args;
   switch(field->m_id) {
   case 1: {
      value->deskId = reader->readInt(isSuccess);
      break;
   }
   case 2: {
      int arrayLen = reader->readArrayLength(isSuccess);
      if(!isSuccess) break;
      for(int i = 0; i < arrayLen; i++) {
         BaseMsgPlayerInfo item;
         isSuccess = item.decode(proto, reader);
         if(!isSuccess) break;
         value->playerNames.push_back(item);
      }
      break;
   }
   case 3: {
      int arrayLen = reader->readArrayLength(isSuccess);
      if(!isSuccess) break;
      for(int i = 0; i < arrayLen; i++) {
         value->playerChairIds.push_back(reader->readInt(isSuccess));
      }
      break;
   }
   case 4: {
      value->deskCode = reader->readString(isSuccess);
      break;
   }
   case 5: {
      value->isFriend = reader->readBool(isSuccess);
      break;
   }
   default:
      break;
   }
   return isSuccess;
}

static bool onBaseProtoDeskInfoEncode(JMsgProto* proto, JMsgField* field, JMsgWriter* writer, void* args) {
   BaseProtoDeskInfo* value = (BaseProtoDeskInfo*)args;
   switch(field->m_id) {
   case 1: {
      writer->writeIntField(field, value->deskId);
      break;
   }
   case 2: {
      int arrayLen = (int)value->playerNames.size();
      writer->writeArrayHeader(field, arrayLen);
      for(int i = 0; i < arrayLen; i++) {
         value->playerNames[i].encode(proto, writer);
      }
      break;
   }
   case 3: {
      int arrayLen = (int)value->playerChairIds.size();
      writer->writeArrayHeader(field, arrayLen);
      for(int i = 0; i < arrayLen; i++) {
         writer->writeInt(value->playerChairIds[i]);
      }
      break;
   }
   case 4: {
      writer->writeStringField(field, value->deskCode);
      break;
   }
   case 5: {
      writer->writeBoolField(field, value->isFriend);
      break;
   }
   default:
      break;
   }
   return true;
}
void BaseProtoDeskInfo::encode(JMsgProto* proto, JMsgWriter* writer) {
   proto->encode(81, writer, onBaseProtoDeskInfoEncode, this);
}
bool BaseProtoDeskInfo::decode(JMsgProto* proto, JMsgReader* reader) {
   return proto->decode(reader, onBaseProtoDeskInfoDecode, this) == 81;
}
BaseMsgS2CJoinDesk::BaseMsgS2CJoinDesk() {
   success = false;
   chairId = 0;
}

static bool onBaseMsgS2CJoinDeskDecode(JMsgProto* proto, JMsgField* field, JMsgReader* reader, void* args) {
   bool isSuccess = false;
   BaseMsgS2CJoinDesk* value = (BaseMsgS2CJoinDesk*)args;
   switch(field->m_id) {
   case 1: {
      value->success = reader->readBool(isSuccess);
      break;
   }
   case 2: {
      value->chairId = reader->readInt(isSuccess);
      break;
   }
   case 3: {
      isSuccess = value->deskInfo.decode(proto, reader);
      break;
   }
   default:
      break;
   }
   return isSuccess;
}

static bool onBaseMsgS2CJoinDeskEncode(JMsgProto* proto, JMsgField* field, JMsgWriter* writer, void* args) {
   BaseMsgS2CJoinDesk* value = (BaseMsgS2CJoinDesk*)args;
   switch(field->m_id) {
   case 1: {
      writer->writeBoolField(field, value->success);
      break;
   }
   case 2: {
      writer->writeIntField(field, value->chairId);
      break;
   }
   case 3: {
      writer->writeFieldHeader(field);
      value->deskInfo.encode(proto, writer);
      break;
   }
   default:
      break;
   }
   return true;
}
void BaseMsgS2CJoinDesk::encode(JMsgProto* proto, JMsgWriter* writer) {
   proto->encode(10, writer, onBaseMsgS2CJoinDeskEncode, this);
}
bool BaseMsgS2CJoinDesk::decode(JMsgProto* proto, JMsgReader* reader) {
   return proto->decode(reader, onBaseMsgS2CJoinDeskDecode, this) == 10;
}
BaseProtoRoomState::BaseProtoRoomState() {
   roomId = 0;
   maxPlayerCount = 0;
   currentPlayerCount = 0;
   roomType = 0;
}

static bool onBaseProtoRoomStateDecode(JMsgProto* proto, JMsgField* field, JMsgReader* reader, void* args) {
   bool isSuccess = false;
   BaseProtoRoomState* value = (BaseProtoRoomState*)args;
   switch(field->m_id) {
   case 1: {
      value->roomId = reader->readInt(isSuccess);
      break;
   }
   case 2: {
      value->maxPlayerCount = reader->readInt(isSuccess);
      break;
   }
   case 3: {
      value->currentPlayerCount = reader->readInt(isSuccess);
      break;
   }
   case 4: {
      value->serverAddr = reader->readString(isSuccess);
      break;
   }
   case 5: {
      value->roomType = reader->readInt(isSuccess);
      break;
   }
   default:
      break;
   }
   return isSuccess;
}

static bool onBaseProtoRoomStateEncode(JMsgProto* proto, JMsgField* field, JMsgWriter* writer, void* args) {
   BaseProtoRoomState* value = (BaseProtoRoomState*)args;
   switch(field->m_id) {
   case 1: {
      writer->writeIntField(field, value->roomId);
      break;
   }
   case 2: {
      writer->writeIntField(field, value->maxPlayerCount);
      break;
   }
   case 3: {
      writer->writeIntField(field, value->currentPlayerCount);
      break;
   }
   case 4: {
      writer->writeStringField(field, value->serverAddr);
      break;
   }
   case 5: {
      writer->writeIntField(field, value->roomType);
      break;
   }
   default:
      break;
   }
   return true;
}
void BaseProtoRoomState::encode(JMsgProto* proto, JMsgWriter* writer) {
   proto->encode(82, writer, onBaseProtoRoomStateEncode, this);
}
bool BaseProtoRoomState::decode(JMsgProto* proto, JMsgReader* reader) {
   return proto->decode(reader, onBaseProtoRoomStateDecode, this) == 82;
}
BaseMsgS2CJoinRoom::BaseMsgS2CJoinRoom() {
   isSuccess = false;
   errorCode = 0;
   roomId = 0;
   allDeskCount = 0;
}

static bool onBaseMsgS2CJoinRoomDecode(JMsgProto* proto, JMsgField* field, JMsgReader* reader, void* args) {
   bool isSuccess = false;
   BaseMsgS2CJoinRoom* value = (BaseMsgS2CJoinRoom*)args;
   switch(field->m_id) {
   case 1: {
      value->isSuccess = reader->readBool(isSuccess);
      break;
   }
   case 2: {
      value->errorCode = reader->readInt(isSuccess);
      break;
   }
   case 3: {
      value->roomId = reader->readInt(isSuccess);
      break;
   }
   case 4: {
      int arrayLen = reader->readArrayLength(isSuccess);
      if(!isSuccess) break;
      for(int i = 0; i < arrayLen; i++) {
         BaseProtoDeskInfo item;
         isSuccess = item.decode(proto, reader);
         if(!isSuccess) break;
         value->desks.push_back(item);
      }
      break;
   }
   case 5: {
      value->allDeskCount = reader->readInt(isSuccess);
      break;
   }
   case 6: {
      int arrayLen = reader->readArrayLength(isSuccess);
      if(!isSuccess) break;
      for(int i = 0; i < arrayLen; i++) {
         BaseMsgPlayerInfo item;
         isSuccess = item.decode(proto, reader);
         if(!isSuccess) break;
         value->players.push_back(item);
      }
      break;
   }
   case 7: {
      isSuccess = value->roomState.decode(proto, reader);
      break;
   }
   default:
      break;
   }
   return isSuccess;
}

static bool onBaseMsgS2CJoinRoomEncode(JMsgProto* proto, JMsgField* field, JMsgWriter* writer, void* args) {
   BaseMsgS2CJoinRoom* value = (BaseMsgS2CJoinRoom*)args;
   switch(field->m_id) {
   case 1: {
      writer->writeBoolField(field, value->isSuccess);
      break;
   }
   case 2: {
      writer->writeIntField(field, value->errorCode);
      break;
   }
   case 3: {
      writer->writeIntField(field, value->roomId);
      break;
   }
   case 4: {
      int arrayLen = (int)value->desks.size();
      writer->writeArrayHeader(field, arrayLen);
      for(int i = 0; i < arrayLen; i++) {
         value->desks[i].encode(proto, writer);
      }
      break;
   }
   case 5: {
      writer->writeIntField(field, value->allDeskCount);
      break;
   }
   case 6: {
      int arrayLen = (int)value->players.size();
      writer->writeArrayHeader(field, arrayLen);
      for(int i = 0; i < arrayLen; i++) {
         value->players[i].encode(proto, writer);
      }
      break;
   }
   case 7: {
      writer->writeFieldHeader(field);
      value->roomState.encode(proto, writer);
      break;
   }
   default:
      break;
   }
   return true;
}
void BaseMsgS2CJoinRoom::encode(JMsgProto* proto, JMsgWriter* writer) {
   proto->encode(8, writer, onBaseMsgS2CJoinRoomEncode, this);
}
bool BaseMsgS2CJoinRoom::decode(JMsgProto* proto, JMsgReader* reader) {
   return proto->decode(reader, onBaseMsgS2CJoinRoomDecode, this) == 8;
}
BaseMsgS2CLogin::BaseMsgS2CLogin() {
   success = 0;
   errorCode = 0;
}

static bool onBaseMsgS2CLoginDecode(JMsgProto* proto, JMsgField* field, JMsgReader* reader, void* args) {
   bool isSuccess = false;
   BaseMsgS2CLogin* value = (BaseMsgS2CLogin*)args;
   switch(field->m_id) {
   case 1: {
      value->success = reader->readInt(isSuccess);
      break;
   }
   case 2: {
      value->errorCode = reader->readInt(isSuccess);
      break;
   }
   case 3: {
      value->userName = reader->readString(isSuccess);
      break;
   }
   case 4: {
      isSuccess = value->playerInfo.decode(proto, reader);
      break;
   }
   case 5: {
      value->playerGameData = reader->readString(isSuccess);
      break;
   }
   case 6: {
      int arrayLen = reader->readArrayLength(isSuccess);
      if(!isSuccess) break;
      for(int i = 0; i < arrayLen; i++) {
         BaseProtoRoomState item;
         isSuccess = item.decode(proto, reader);
         if(!isSuccess) break;
         value->rooms.push_back(item);
      }
      break;
   }
   default:
      break;
   }
   return isSuccess;
}

static bool onBaseMsgS2CLoginEncode(JMsgProto* proto, JMsgField* field, JMsgWriter* writer, void* args) {
   BaseMsgS2CLogin* value = (BaseMsgS2CLogin*)args;
   switch(field->m_id) {
   case 1: {
      writer->writeIntField(field, value->success);
      break;
   }
   case 2: {
      writer->writeIntField(field, value->errorCode);
      break;
   }
   case 3: {
      writer->writeStringField(field, value->userName);
      break;
   }
   case 4: {
      writer->writeFieldHeader(field);
      value->playerInfo.encode(proto, writer);
      break;
   }
   case 5: {
      writer->writeStringField(field, value->playerGameData);
      break;
   }
   case 6: {
      int arrayLen = (int)value->rooms.size();
      writer->writeArrayHeader(field, arrayLen);
      for(int i = 0; i < arrayLen; i++) {
         value->rooms[i].encode(proto, writer);
      }
      break;
   }
   default:
      break;
   }
   return true;
}
void BaseMsgS2CLogin::encode(JMsgProto* proto, JMsgWriter* writer) {
   proto->encode(6, writer, onBaseMsgS2CLoginEncode, this);
}
bool BaseMsgS2CLogin::decode(JMsgProto* proto, JMsgReader* reader) {
   return proto->decode(reader, onBaseMsgS2CLoginDecode, this) == 6;
}
BaseMsgS2COtherPlayerJoinRoom::BaseMsgS2COtherPlayerJoinRoom() {
}

static bool onBaseMsgS2COtherPlayerJoinRoomDecode(JMsgProto* proto, JMsgField* field, JMsgReader* reader, void* args) {
   bool isSuccess = false;
   BaseMsgS2COtherPlayerJoinRoom* value = (BaseMsgS2COtherPlayerJoinRoom*)args;
   switch(field->m_id) {
   case 1: {
      isSuccess = value->playerInfo.decode(proto, reader);
      break;
   }
   default:
      break;
   }
   return isSuccess;
}

static bool onBaseMsgS2COtherPlayerJoinRoomEncode(JMsgProto* proto, JMsgField* field, JMsgWriter* writer, void* args) {
   BaseMsgS2COtherPlayerJoinRoom* value = (BaseMsgS2COtherPlayerJoinRoom*)args;
   switch(field->m_id) {
   case 1: {
      writer->writeFieldHeader(field);
      value->playerInfo.encode(proto, writer);
      break;
   }
   default:
      break;
   }
   return true;
}
void BaseMsgS2COtherPlayerJoinRoom::encode(JMsgProto* proto, JMsgWriter* writer) {
   proto->encode(12, writer, onBaseMsgS2COtherPlayerJoinRoomEncode, this);
}
bool BaseMsgS2COtherPlayerJoinRoom::decode(JMsgProto* proto, JMsgReader* reader) {
   return proto->decode(reader, onBaseMsgS2COtherPlayerJoinRoomDecode, this) == 12;
}
BaseMsgS2COtherPlayerLeaveRoom::BaseMsgS2COtherPlayerLeaveRoom() {
}

static bool onBaseMsgS2COtherPlayerLeaveRoomDecode(JMsgProto* proto, JMsgField* field, JMsgReader* reader, void* args) {
   bool isSuccess = false;
   BaseMsgS2COtherPlayerLeaveRoom* value = (BaseMsgS2COtherPlayerLeaveRoom*)args;
   switch(field->m_id) {
   case 1: {
      value->userName = reader->readString(isSuccess);
      break;
   }
   default:
      break;
   }
   return isSuccess;
}

static bool onBaseMsgS2COtherPlayerLeaveRoomEncode(JMsgProto* proto, JMsgField* field, JMsgWriter* writer, void* args) {
   BaseMsgS2COtherPlayerLeaveRoom* value = (BaseMsgS2COtherPlayerLeaveRoom*)args;
   switch(field->m_id) {
   case 1: {
      writer->writeStringField(field, value->userName);
      break;
   }
   default:
      break;
   }
   return true;
}
void BaseMsgS2COtherPlayerLeaveRoom::encode(JMsgProto* proto, JMsgWriter* writer) {
   proto->encode(13, writer, onBaseMsgS2COtherPlayerLeaveRoomEncode, this);
}
bool BaseMsgS2COtherPlayerLeaveRoom::decode(JMsgProto* proto, JMsgReader* reader) {
   return proto->decode(reader, onBaseMsgS2COtherPlayerLeaveRoomDecode, this) == 13;
}
BaseMsgS2CRegister::BaseMsgS2CRegister() {
   isSuccess = false;
   errorCode = 0;
}

static bool onBaseMsgS2CRegisterDecode(JMsgProto* proto, JMsgField* field, JMsgReader* reader, void* args) {
   bool isSuccess = false;
   BaseMsgS2CRegister* value = (BaseMsgS2CRegister*)args;
   switch(field->m_id) {
   case 1: {
      value->userName = reader->readString(isSuccess);
      break;
   }
   case 2: {
      value->isSuccess = reader->readBool(isSuccess);
      break;
   }
   case 3: {
      value->errorCode = reader->readInt(isSuccess);
      break;
   }
   default:
      break;
   }
   return isSuccess;
}

static bool onBaseMsgS2CRegisterEncode(JMsgProto* proto, JMsgField* field, JMsgWriter* writer, void* args) {
   BaseMsgS2CRegister* value = (BaseMsgS2CRegister*)args;
   switch(field->m_id) {
   case 1: {
      writer->writeStringField(field, value->userName);
      break;
   }
   case 2: {
      writer->writeBoolField(field, value->isSuccess);
      break;
   }
   case 3: {
      writer->writeIntField(field, value->errorCode);
      break;
   }
   default:
      break;
   }
   return true;
}
void BaseMsgS2CRegister::encode(JMsgProto* proto, JMsgWriter* writer) {
   proto->encode(2, writer, onBaseMsgS2CRegisterEncode, this);
}
bool BaseMsgS2CRegister::decode(JMsgProto* proto, JMsgReader* reader) {
   return proto->decode(reader, onBaseMsgS2CRegisterDecode, this) == 2;
}
BaseMsgS2CUpdatePlayerInfo::BaseMsgS2CUpdatePlayerInfo() {
   success = false;
   avatorId = 0;
}

static bool onBaseMsgS2CUpdatePlayerInfoDecode(JMsgProto* proto, JMsgField* field, JMsgReader* reader, void* args) {
   bool isSuccess = false;
   BaseMsgS2CUpdatePlayerInfo* value = (BaseMsgS2CUpdatePlayerInfo*)args;
   switch(field->m_id) {
   case 1: {
      value->success = reader->readBool(isSuccess);
      break;
   }
   case 2: {
      value->userName = reader->readString(isSuccess);
      break;
   }
   case 3: {
      value->nickName = reader->readString(isSuccess);
      break;
   }
   case 4: {
      value->phoneNo = reader->readString(isSuccess);
      break;
   }
   case 5: {
      value->avatorId = reader->readInt(isSuccess);
      break;
   }
   default:
      break;
   }
   return isSuccess;
}

static bool onBaseMsgS2CUpdatePlayerInfoEncode(JMsgProto* proto, JMsgField* field, JMsgWriter* writer, void* args) {
   BaseMsgS2CUpdatePlayerInfo* value = (BaseMsgS2CUpdatePlayerInfo*)args;
   switch(field->m_id) {
   case 1: {
      writer->writeBoolField(field, value->success);
      break;
   }
   case 2: {
      writer->writeStringField(field, value->userName);
      break;
   }
   case 3: {
      writer->writeStringField(field, value->nickName);
      break;
   }
   case 4: {
      writer->writeStringField(field, value->phoneNo);
      break;
   }
   case 5: {
      writer->writeIntField(field, value->avatorId);
      break;
   }
   default:
      break;
   }
   return true;
}
void BaseMsgS2CUpdatePlayerInfo::encode(JMsgProto* proto, JMsgWriter* writer) {
   proto->encode(28, writer, onBaseMsgS2CUpdatePlayerInfoEncode, this);
}
bool BaseMsgS2CUpdatePlayerInfo::decode(JMsgProto* proto, JMsgReader* reader) {
   return proto->decode(reader, onBaseMsgS2CUpdatePlayerInfoDecode, this) == 28;
}
BaseMsgS2CUpdateRoomStatus::BaseMsgS2CUpdateRoomStatus() {
   success = false;
}

static bool onBaseMsgS2CUpdateRoomStatusDecode(JMsgProto* proto, JMsgField* field, JMsgReader* reader, void* args) {
   bool isSuccess = false;
   BaseMsgS2CUpdateRoomStatus* value = (BaseMsgS2CUpdateRoomStatus*)args;
   switch(field->m_id) {
   case 1: {
      value->success = reader->readBool(isSuccess);
      break;
   }
   case 2: {
      isSuccess = value->roomStatus.decode(proto, reader);
      break;
   }
   default:
      break;
   }
   return isSuccess;
}

static bool onBaseMsgS2CUpdateRoomStatusEncode(JMsgProto* proto, JMsgField* field, JMsgWriter* writer, void* args) {
   BaseMsgS2CUpdateRoomStatus* value = (BaseMsgS2CUpdateRoomStatus*)args;
   switch(field->m_id) {
   case 1: {
      writer->writeBoolField(field, value->success);
      break;
   }
   case 2: {
      writer->writeFieldHeader(field);
      value->roomStatus.encode(proto, writer);
      break;
   }
   default:
      break;
   }
   return true;
}
void BaseMsgS2CUpdateRoomStatus::encode(JMsgProto* proto, JMsgWriter* writer) {
   proto->encode(25, writer, onBaseMsgS2CUpdateRoomStatusEncode, this);
}
bool BaseMsgS2CUpdateRoomStatus::decode(JMsgProto* proto, JMsgReader* reader) {
   return proto->decode(reader, onBaseMsgS2CUpdateRoomStatusDecode, this) == 25;
}
